Repository navigation
Project Management Plan
Revised 2026-10-14. Goal: every project management capability of Jira Software, built into ServiceOps as a module of its own and connected to incidents, problems and changes. The owner narrowed the scope on 2026-10-14 to Jira only (no ClickUp target), and to its project management section:
- Out of scope: Jira Service Management (ServiceOps is the ITSM platform), Confluence, Jira Product Discovery, Compass and the Atlassian Marketplace.
- Kept from phase 1: features beyond Jira, such as multiple assignees and the project overview, stay as they are.
Backlog entries: B-443 (phase 1, done) and B-449 to B-459 (phases 2 to 12). Status is tracked in the backlog and the implementation plan.
- A module of its own, connected to ITSM. Work items link both ways to incidents, problems and changes.
- Reuse the platform. Tenancy, roles, audit, notifications, attachments and storage modes, live updates, search, the REST API with OpenAPI, AI, translations and themes all apply.
-
Off until enabled.
PROJECTS_ENABLEDturns the module on. -
Each phase is a release. Every phase gets the full QA:
- the full suite;
- browser and accessibility checks;
- stability fuzz on SQLite and PostgreSQL;
- the cross-tenant sweep;
- timing at 500 users and at least 10,000 work items per project.
- Jira's model, ServiceOps' rules. Jira concepts are kept (schemes, JQL, boards, sprints, versions, components) so Jira users feel at home and Jira data can be imported. Authorization, audit and tenancy follow ServiceOps.
| Phase | Backlog | Content | Status |
|---|---|---|---|
| 1 | B-443 | Projects, work items, comments, history, attachments, links, overview, board, list, search, notifications, REST API | Done (branch) |
| 2 | B-449 | Work item completeness: resolution, components, versions, votes, flag, environment, time tracking and work logs, clone, move, convert, comment editing and visibility, more link types, rich text, Your work, starred and recent, keyboard shortcuts, bulk change | Done (branch) |
| 3 | B-450 | JQL, the issue navigator, saved and shared filters, favourite filters, filter subscriptions, CSV export | Next |
| 4 | B-451 | Scrum and Kanban boards (several per project, filter-based), backlog, sprints (including parallel sprints), estimation | Planned |
| 5 | B-452 | Reports: burndown, burnup, sprint, velocity, cumulative flow, control chart, epic, version, release burndown, created vs resolved and the issue reports | Planned |
| 6 | B-453 | Timeline: epics and child items, dependencies, drag to schedule, releases and sprints | Planned |
| 7 | B-454 | Workflow engine (transitions, conditions, validators, post functions), custom issue types, custom fields, screens, field configurations and the schemes that bind them | Planned |
| 8 | B-455 | Permission schemes, custom project roles, issue security levels, notification schemes | Planned |
| 9 | B-456 | Dashboards and gadgets | Planned |
| 10 | B-457 | Automation rules | Planned |
| 11 | B-458 | Development integration and smart commits, Jira import, CSV import, webhooks, REST API parity, project templates, trash, AI | Planned |
| 12 | B-459 | Plans (Jira's Advanced Roadmaps): cross-project plans, hierarchy above epic, capacity, scenarios | Planned |
The order follows dependencies:
- boards are built on filters and JQL;
- reports read sprints and versions;
- automation needs the workflow engine.
Status: Done (built), Pn (phase that builds it), Adapted (provided differently, with the reason).
| Jira capability | Status |
|---|---|
| Project key, name, description, lead, avatar or colour | Done |
| Private and open projects | Done |
| Archive and restore a project | Done |
| Project category | P2 |
| Default assignee (unassigned, project lead, component lead) | P2 |
| Components with component lead and default assignee | P2 |
| Versions: create, edit, start and release dates, release (moving unresolved items), archive, merge, delete | P2 |
| Project roles: administrators, members, viewers | Done |
| Custom project roles | P8 |
| Project templates: Scrum, Kanban, bug tracking | P11 (Scrum and Kanban defaults come with P4) |
| Trash: deleted projects kept 60 days before removal | P11 |
| Project features on/off (backlog, sprints, estimation, reports, releases, components, code) | P4 |
| Team-managed (simplified) and company-managed (scheme-based) projects | Adapted: projects start simple, and schemes become available per project in P7 and P8 |
| Global settings: issue types, priorities, resolutions, statuses, link types, time tracking | P2 (resolutions, link types, time tracking), P7 (the rest) |
| Jira capability | Status |
|---|---|
| Epic, story, task, bug, subtask | Done |
| Custom issue types, issue type schemes, icons | P7 |
| Summary, description, priority, labels, due date, start date, parent | Done |
| Assignee | Done (several assignees allowed) |
| Reporter | Done (changeable in P2) |
| Resolution (set on done, cleared on reopen) | P2 |
| Components, fix versions, affects versions | P2 |
| Environment | P2 |
| Story points and original estimate | Done |
| Remaining estimate and time spent | P2 |
| Watchers | Done |
| Votes | P2 |
| Flag (impediment) with comment | P2 |
| Rich text: headings, lists, tables, code, links, mentions, emoji, pasted images | P2 (Markdown with a toolbar and preview) |
| Create another, inline edit | Done |
| Assign to me | P2 |
| Clone (with or without subtasks, attachments and links) | P2 |
| Move to another project or type | P2 |
| Convert between subtask and standard type | P2 |
| Delete | Done |
| Link types: blocks, relates, duplicates | Done |
| Link types: clones, causes; custom link types | P2 |
| Links to ITSM incidents, problems, changes | Done (beyond Jira) |
| Log work: time spent, date, comment, remaining estimate handling | P2 |
| Activity tabs: all, comments, history, work log | P2 (comments and history done) |
| Edit and delete comments; comment visible to a project role only | P2 |
| Emoji reactions on comments | P2 |
| Share by notification; print view; export to Word or XML | P2 (share and print); Adapted: CSV and JSON export instead of Word and XML (P3) |
| Attachments (drag and drop, preview) | Done (drag and drop and image preview in P2) |
| Development panel (branches, commits, pull requests, builds, deployments) | P11 |
| Jira capability | Status |
|---|---|
| Quick search by key and text | Done |
| Basic search (field pickers) | Done on the list; becomes the navigator's basic mode in P3 |
| JQL fields and custom fields | P3 (custom fields after P7) |
JQL operators: =, !=, >, >=, <, <=, ~, !~, IN, NOT IN, IS EMPTY, IS NOT EMPTY
|
P3 |
JQL history operators: WAS, WAS IN, WAS NOT, CHANGED with FROM, TO, BY, DURING, BEFORE, AFTER
|
P3 |
| JQL functions | P3 |
JQL AND/OR/NOT, parentheses, ORDER BY
|
P3 |
| JQL autocomplete and syntax errors with positions | P3 |
| Saved filters with owner, shared with a project, role or everyone; favourites | P3 |
| Filter subscriptions (scheduled email) | P3 |
| Issue navigator: list and detail views, choosing columns | P3 |
| Export to CSV (all fields or current fields) | P3 |
| Bulk change: edit, transition, move, delete, watch, stop watching | P2 (edit, transition, delete, watch), P3 (from any filter result) |
JQL functions in P3:
- people:
currentUser(),membersOf(); - sprints:
openSprints(),closedSprints(),futureSprints(); - versions:
releasedVersions(),unreleasedVersions(),latestReleasedVersion(),earliestUnreleasedVersion(); - time:
now(),startOfDay(),endOfDay(),startOfWeek(),endOfWeek(),startOfMonth(),endOfMonth(),startOfYear(),endOfYear(); - links and history:
linkedIssues(),issueHistory(),watchedIssues(),votedIssues(),updatedBy(),parentEpic(),issuesWithRemoteLinks().
| Jira capability | Status |
|---|---|
| One board per project | Done |
| Several boards per project; boards across projects from a filter | P4 |
| Scrum and Kanban board types | P4 |
| Columns mapped to one or more statuses | P4 (today one column per status) |
| Column constraints: minimum and maximum, by item count or story points | P4 (maximum by count done) |
| Swimlanes: none, assignee, epic | Done |
| Swimlanes: stories (parent), projects, JQL queries | P4 |
| Quick filters (JQL) | P4 (fixed filters done) |
| Card layout (extra fields) and card colours (by type, priority, assignee or query) | P4 |
| Days in column on cards | P4 |
| Detail panel on the board | P4 |
| Kanban backlog; released work hidden from the board | P4 |
| Estimation statistic (story points, original estimate, item count) and time tracking statistic | P4 |
| Working days and non-working dates for charts | P4 |
| Backlog: drag ranking, epics and versions panels, sums per sprint | P4 |
| Sprints: create, edit, start (name, duration, dates, goal), complete (move unfinished work to backlog or another sprint) | P4 |
| Parallel sprints | P4 |
| Sprint scope change tracking | P4 |
| Jira capability | Status |
|---|---|
| Burndown, burnup, sprint report, velocity | P5 |
| Cumulative flow diagram | P5 |
| Control chart (cycle time) with rolling average | P5 |
| Epic report, epic burndown | P5 |
| Version report, release burndown | P5 |
| Created vs resolved, pie chart, recently created, resolution time, average age, time since | P5 |
| Single-level group by, user workload, time tracking report | P5 |
| Sprint health on the board | P5 |
| Jira capability | Status |
|---|---|
| Epics and child items as bars; collapse and expand | P6 |
| Dependencies drawn between bars; create by dragging | P6 |
| Drag and resize to change start and due dates | P6 |
| Progress bars, release and sprint markers | P6 |
| Week, month and quarter scales; filters; today marker | P6 |
| Jira capability | Status |
|---|---|
| Statuses with categories, per project | Done |
| Workflows with named transitions | P7 |
| Global transitions ("from any status") | P7 |
| Transition screens | P7 |
| Conditions: permission, project role, only assignee, only reporter, subtasks done | P7 |
| Validators: required fields, permission, date ordering | P7 |
| Post functions: assign, set or clear a field, set resolution, add comment, notify | P7 |
| Workflow per issue type through a workflow scheme | P7 |
| Workflow editor (diagram and text views) | P7 |
| Custom fields: text, paragraph, number, date, date-time, select, multi-select, radio, checkboxes, cascading select, user, multi-user, group, URL, version, labels, project | P7 |
| Field configurations (required, hidden, description) | P7 |
| Screens and screen schemes (create, edit, view) | P7 |
| Issue type and priority schemes | P7 |
| Jira capability | Status |
|---|---|
| Fixed roles: administer, edit, comment, view | Done |
| Permission schemes: per-permission grants to roles, groups, users, reporter, assignee | P8 |
| Permissions covered: browse, create, edit, transition, assign, assignable, resolve, close, delete, link, move, schedule, set security, comments (add, edit own and all, delete own and all), attachments (create, delete own and all), work logs (add, edit and delete own and all), manage sprints, manage watchers, view voters and watchers, administer | P8 |
| Issue security levels and schemes | P8 |
| Notification schemes: events × recipients (reporter, assignee, watchers, role, group, user, component lead) | P8 |
| Personal notification preferences per event | P2 |
| Jira capability | Status |
|---|---|
| Personal and shared dashboards, layouts, several per user | P9 |
| Gadgets: filter results, assigned to me, activity stream, pie chart, created vs resolved, two-dimensional filter statistics, issue statistics, heat map, calendar, sprint burndown, sprint health, average age, resolution time, watched issues, voted issues, road map, labels | P9 |
| Jira capability | Status |
|---|---|
| Rules per project or across projects; rule audit log | P10 |
| Triggers: created, transitioned, field changed, commented, assigned, work logged, scheduled (with JQL), sprint started or completed, version released, manual, incoming webhook | P10 |
| Conditions: JQL, field compare, user, related items, if/else | P10 |
| Actions: transition, edit fields, assign, comment, create, clone, link, log work, notify, send email, webhook, set variable | P10 |
| Branches: subtasks, parent, epic, linked items, JQL | P10 |
Smart values ({{issue.key}}, {{issue.summary}}, …) |
P10 |
| Rule templates | P10 |
| Jira capability | Status |
|---|---|
| REST API: projects, work items, comments | Done |
| REST API: search (JQL), transitions, work logs, attachments, links, watchers, votes, components, versions, boards, sprints, filters, dashboards | Matching phases (P2 to P9) |
| Webhooks for work item events | P11 |
Development tools: link commits, branches and pull requests by key (GitHub, GitLab); smart commits (WEB-12 #comment … #time 2h #done) |
P11 |
| Jira import (JSON or CSV export, keeping keys, links, comments, history, attachments, sprints and versions) | P11 |
| CSV import with field mapping | P11 |
| Email to work item | P11 |
| AI: summarise a work item and its comments, natural language to JQL, break an epic into stories | P11 |
| Mobile: work items in the iOS app | P11 |
| Jira capability | Status |
|---|---|
| Plans across projects and boards | P12 |
| Hierarchy levels above epic (for example initiative) | P12 |
| Teams and capacity per sprint | P12 |
| Scenarios and auto-scheduling | P12 |
| Dependencies report | P12 |
| Jira capability | Status |
|---|---|
| Your work: worked on, viewed, assigned to me, starred | P2 (assigned to me done) |
| Starred projects, filters and boards; recent items | P2 (projects and items), later phases (filters, boards) |
| Keyboard shortcuts | P2 |
| Global create button | P2 |
Phase 1 tables:
-
project,project_member,project_status; -
work_itemwithwork_item_assignee,work_item_watcher,work_item_label; -
work_item_comment,work_item_history,work_item_link; -
file_attachment.work_item_id.
Phase 2 adds:
-
project_component; -
project_versionwithwork_item_fix_versionandwork_item_affects_version; -
work_item_worklog,work_item_vote,work_item_component,work_item_star,work_item_view; -
comment_reaction,link_type,resolution; - new columns on
work_item: resolution, environment, flag, remaining and spent time; - new columns on
project: category and default assignee.
Later phases add sprints, boards, filters, subscriptions, workflows, transitions, custom fields, screens, schemes, permission and notification schemes, dashboards, gadgets, automation rules and plans, each with tenant_id.
- Each new behaviour has tests that fail without it, including negative authorization and other-tenant cases.
- Browser QA at desktop and phone width, with axe WCAG 2.1 AA and no violations, in light and dark themes.
- Stability fuzz reports 0 failing routes on SQLite and PostgreSQL.
- The cross-tenant sweep is clean.
- Every page stays under about 150 ms at 500 users and 10,000 work items per project on PostgreSQL.
- The OpenAPI document is complete; a reversible migration is verified on PostgreSQL.
- Documentation is updated.