A Jira workflow for software development is the path every story, bug and task follows from idea to production. When that path matches how your team really works, the board becomes a reliable picture of delivery: anyone can see what is blocked, what is waiting for review and what is ready to ship. When it does not, developers spend their time dragging cards, managers chase status updates and the reports say nothing useful.
Most of the Jira projects we inherit from clients have the second problem. Workflows grow one status at a time until nobody can explain them, and the same issue type behaves differently across teams. When we take over delivery as part of managed product engineering teams, cleaning up the Jira software development workflow is usually one of the first two weeks’ jobs, because every later metric depends on it.
This guide explains what a Jira workflow is, which workflow fits most software teams, five examples you can copy, how to set one up, how to automate transitions from GitHub, GitLab or Bitbucket, and the best practices and mistakes that decide whether Jira helps or slows you down. It applies to Jira Cloud and Jira Data Center.
What is a Jira workflow for software development?
A Jira workflow is the set of statuses an issue can be in and the transitions that move it between them. For software development, it models the life of a work item: from backlog, through coding, code review and testing, to release. Every Jira project uses a workflow, whether the team designed it or accepted the default.
The workflow is not the board. The workflow defines which states exist and which moves are allowed; the board is a view that maps those statuses to columns. You can have several boards on one workflow, and you can hide or merge statuses in a column without changing the workflow underneath.
The building blocks of a Jira workflow
Six components make up every Jira workflow, and understanding them makes it much easier to design a clean one.
| Component | What it does | Software development example |
|---|---|---|
| Status | The current state of an issue | In Progress, In Review, Done |
| Status category | Groups statuses into To Do, In Progress or Done for reports | “In QA” belongs to In Progress |
| Transition | An allowed move from one status to another | In Review → In QA |
| Condition | Who or what can see and use a transition | Only the assignee can start work |
| Validator | A check that must pass before the move completes | A pull request must be linked before review |
| Post function / rule | An action that runs after the move | Set resolution to “Done”, notify QA |
Company-managed projects expose conditions, validators and post functions directly. Team-managed projects offer simpler transition rules for restricting, validating and acting on transitions. Both can be extended with Jira Automation.
Workflow schemes and issue types
A workflow scheme maps issue types to workflows inside a project. This is how a project can run one workflow for stories and tasks and a different one for bugs. Sharing one scheme across several projects is the main tool for keeping many teams consistent, which we cover in the scaling section below.
What is the best Jira workflow for software development?
The best Jira workflow for software development is the simplest one that still shows where work waits. For most product teams that means six statuses: Backlog, Selected for Development, In Progress, In Review, In QA and Done. Each status answers one question about the work, and each has an owner and an exit rule everyone agrees on.
| Status | Category | Owner | Exit rule (Definition of Ready / Done for the step) |
|---|---|---|---|
| Backlog | To Do | Product owner | Has a clear goal, acceptance criteria and an estimate |
| Selected for Development | To Do | Product owner + team | Pulled into the sprint or into the next-up queue |
| In Progress | In Progress | Developer | Code complete, tests written, pull request opened |
| In Review | In Progress | Reviewer | Pull request approved and merged; CI is green |
| In QA | In Progress | QA engineer | Acceptance criteria verified on staging, no blocking bugs |
| Done | Done | Team | Released or ready to release behind a feature flag; resolution set |
Two rules make this workflow work. First, allow moves back: review and QA must be able to return an issue to In Progress without admin help. Second, keep “Blocked” out of the status list and use a flag instead. A blocked status hides where the work was when it got stuck, while a flag keeps the issue in its real column and still shows the problem.
How many statuses should a Jira workflow have?
A typical software team needs 5–7 statuses. Fewer than five usually hides review or testing, so work looks “in progress” for days with no signal about why. More than seven usually means statuses that describe people or departments instead of the state of the work. A useful test: if the team cannot explain a status in one sentence, or no issue has sat in it in the last month, remove it.
5 Jira workflow examples for software development
Different kinds of work need slightly different flows, but they should share the same backbone. These five Jira workflow examples cover almost every software team; copy the one closest to your process and adjust only what you can justify.
1. Basic workflow for small teams
To Do → In Progress → In Review → Done. This is close to Jira’s default and works for teams of two to five developers who test their own code or ship behind feature flags. Add a QA status as soon as a dedicated tester joins, otherwise testing becomes invisible.
2. Scrum workflow
Backlog → Selected for Development → In Progress → In Review → In QA → Done. Sprint scope lives in Selected for Development, and the sprint board shows the four working statuses. Burndown and velocity reports depend on Done meaning “meets the Definition of Done”, so never let issues reach Done before QA. Our guide to Scrum software development covers the roles and events behind this flow.
3. Kanban workflow
Backlog → Ready → In Progress → Review → Testing → Ready to Release → Done. Kanban teams care about flow, so they add a “Ready to Release” buffer and set WIP limits on board columns, for example three issues per developer in progress. Cycle time and the cumulative flow diagram become the main health signals. See Kanban software development for WIP-limit guidance.
4. Bug tracking workflow
Open → Triaged → In Progress → In Review → Verified → Closed, with resolutions such as Fixed, Duplicate, Cannot Reproduce and Won’t Fix. The extra Triaged step makes sure someone checks severity and reproducibility before a developer picks the bug up. Verified should be done by the reporter or QA, not by the developer who fixed it.
5. Feature and release workflow with UAT
Idea → Discovery → Ready → In Development → In QA → UAT → Released. This suits epics or client-facing features where a business owner signs off. It often runs on the epic level while stories inside it use the Scrum or Kanban flow. The UAT step mirrors the process described in our guide to user acceptance testing.
| Workflow | Best for | Statuses | Key metric |
|---|---|---|---|
| Basic | Small teams, no dedicated QA | 4 | Throughput per week |
| Scrum | Sprint-based product teams | 6 | Sprint commitment vs completion |
| Kanban | Continuous delivery, support, platform teams | 7 | Cycle time, WIP |
| Bug tracking | Defects from QA, support and users | 6 | Time to triage, time to fix |
| Feature with UAT | Epics, client sign-off, regulated releases | 7 | Lead time idea → release |
How to set up a Jira workflow for software development in 8 steps
Setting up a Jira workflow takes an afternoon of configuration but should start with an hour of whiteboard work. Design the flow on paper with the team first, then build it in Jira, then test it on a few real issues before switching everyone over.
- Map the real process. Ask the team how a story actually moves today, including where it waits. Write down every hand-off: developer to reviewer, reviewer to QA, QA to release.
- Choose statuses, not people. Name each status after the state of the work (“In Review”), never after a person or team (“With Anna”, “Backend”). Aim for 5–7.
- Assign status categories. Put each status into To Do, In Progress or Done. Reports, roadmaps and the issue colour depend on this.
- Draw the transitions. Allow every forward move you need and the backward moves for rework. Avoid “any status to any status” except for an admin-only reset.
- Add only the rules you need. Typical ones: a validator that requires a linked pull request before In Review, a condition that only QA can move to Done, and a post function that sets the resolution on Done and clears it on reopen.
- Create or update the workflow scheme. Map stories, tasks and sub-tasks to the main workflow and bugs to the bug workflow if you use one. Publish the scheme on a test project first.
- Configure the board. Map statuses to columns, set WIP limits for Kanban, and add quick filters such as “Flagged” or “Assigned to me”.
- Pilot, then roll out. Run one sprint on the new workflow with one team, collect friction points, fix them and only then migrate other projects. Write a one-page guide that explains each status and exit rule.
How should a Jira workflow connect to Git, code review and CI/CD?
A Jira workflow for software development should be driven by development events, not by manual dragging. When branches, pull requests, builds and deployments update issues automatically, the board stays accurate and developers stay in their editor.
- Link everything with the issue key. Put the key, for example
PAY-142, in branch names, commit messages and pull request titles. Jira then shows the development panel with branches, commits, pull requests, builds and deployments on the issue. - Use smart commits sparingly. With Bitbucket and other connected tools, commit messages such as
PAY-142 #comment fixed roundingorPAY-142 #time 2hupdate Jira directly. Transition commands work too, but automation rules are easier to govern. - Connect GitHub or GitLab through the official apps. GitHub for Jira and GitLab for Jira Cloud send development data and deployment information to Jira, which also powers the deployments view and release tracking.
- Report builds and deployments. When CI/CD posts build and deployment status, the issue shows whether its code is on staging or in production, and Done can mean “deployed” rather than “merged”.
This is also where the workflow meets your delivery pipeline. If you are still building that pipeline, our guide to CI/CD in software development explains the stages that should report back to Jira.
Which Jira workflow transitions should you automate?
Automate transitions that follow a predictable event and keep human judgment where a decision is required. A good rule of thumb: if the transition always happens when something else happens, a rule should do it; if someone has to decide, leave it manual.
| Trigger (Jira Automation) | Action | Why it helps |
|---|---|---|
| Branch created or first commit | Move issue to In Progress, assign the author | Board shows real start date without manual drag |
| Pull request created | Move to In Review, notify the reviewer group | Review queue becomes visible |
| Pull request merged | Move to In QA, comment with the build link | QA knows exactly what to test |
| Pull request declined | Move back to In Progress | Rework is tracked honestly |
| Deployment to production successful | Move to Done, set resolution, set fix version | Done means shipped; release notes stay accurate |
| All sub-tasks done | Move parent story to In QA or Done | Removes a common source of stale stories |
| No update for 5 days in In Review | Flag issue and ping the reviewer | Stops pull requests from rotting |
Keep approvals, QA sign-off and UAT manual. Atlassian’s built-in AI features can now summarise issues and suggest next steps, but a status that represents a quality decision should still be moved by the person accountable for it. Automation is most effective after the workflow itself is clean; automating a messy workflow only makes the mess faster.
Jira workflow best practices: a 7-point checklist
The best Jira workflows share the same habits: few statuses, clear ownership and regular review. Use this checklist when you design a new workflow or audit an old one.
- Keep it to 5–7 statuses and name them after the state of the work.
- Give every status an owner and an exit rule written in the project’s one-page guide.
- Make rework explicit with backward transitions instead of reopening tickets or creating duplicates.
- Use flags and labels for side states such as blocked, needs design or waiting for client, instead of extra statuses.
- Set resolutions correctly: every issue in Done needs a resolution, and reopening must clear it, or reports will count unfinished work as done.
- Share one workflow scheme across teams that build the same product, and allow local variations only at board level.
- Review the workflow every quarter using cycle time, time in status and the cumulative flow diagram.
These habits matter because tool friction is expensive. Atlassian’s State of Developer Experience report (2024) found that 69% of developers lose eight or more hours a week to inefficiencies, and unclear processes and status chores are part of that bill. For the wider set of tracking metrics, see our guide to software development KPIs and DORA benchmarks.
Common Jira workflow mistakes and how to fix them
Most broken Jira workflows fail in the same few ways, and each has a simple fix. The table below lists the problems we see most often when auditing client projects.
| Mistake | Symptom | Fix |
|---|---|---|
| Too many statuses | 12+ columns, many always empty | Merge into 5–7; move side states to flags or labels |
| Statuses named after people or teams | “With Backend”, “Waiting for John” | Rename by state of work; use assignee and components for ownership |
| “Blocked” as a status | Impossible to tell where blocked work stopped | Use the flag feature and a quick filter |
| No backward transitions | Failed QA creates new tickets or admin edits | Allow In Review/In QA → In Progress |
| Missing resolution on Done | Reports and filters show done work as open | Post function or rule that sets and clears resolution |
| A workflow per team for the same product | Cross-team reports do not add up | One shared scheme; differences only on boards |
| Manual status updates only | Board lags reality by days | Automate from branch, PR, build and deploy events |
How do you scale Jira workflows across multiple teams?
Scale Jira workflows with a shared backbone and local freedom only where it does not break reporting. All teams working on one product should use the same statuses and status categories, so a portfolio view, a release plan or a cross-team dashboard means the same thing everywhere.
- One workflow scheme per product line, shared by all its projects, owned by one Jira admin or a small working group.
- One project with several boards when teams work on the same codebase: each team filters its board by component or team field while the workflow stays common.
- Local variation at board level: WIP limits, swimlanes and quick filters can differ per team without touching the workflow.
- A change process: workflow changes go through a short request with a reason, are tested on a sandbox project and are announced before release.
- Regular clean-up of unused statuses, custom fields and inactive workflows, which slow down Jira and confuse new team members.
The same principle applies when you work with an external delivery partner or extended team: they should work inside your shared workflow, not a parallel one. Our guide to managing software development teams covers the operating rhythm around it.
How do you audit a Jira workflow? A quarterly health check
Audit a Jira workflow every quarter by measuring where issues wait, not how many statuses exist. Three built-in reports are enough to find most problems, and the whole check takes about an hour.
- Cumulative flow diagram. A band that keeps getting wider shows a bottleneck; a widening In Review band, for example, means reviews are the constraint.
- Control chart or cycle time report. Look at the average and the outliers. Issues that take three times the average usually reveal unclear requirements or hidden dependencies.
- Time in status. Statuses where issues sit idle for days are candidates for automation, WIP limits or a process change.
- Unused statuses and transitions. Anything not used in the last quarter can be removed.
- Team feedback. Ask which transitions people work around. Workarounds are the most honest signal that a workflow no longer fits.
Key takeaways
- A Jira workflow is a set of statuses and transitions; the board is only a view of it.
- The best Jira workflow for software development has 5–7 statuses, each with an owner and an exit rule.
- Copy one of five proven patterns: basic, Scrum, Kanban, bug tracking or feature with UAT.
- Use flags instead of a Blocked status, and always allow backward transitions for rework.
- Drive transitions from branches, pull requests, builds and deployments with Jira Automation.
- Share one workflow scheme across teams on the same product and review it every quarter.
FAQ
What is a Jira workflow for software development?
A Jira workflow for software development is the set of statuses and transitions that a story, bug or task follows from backlog to release, for example Backlog, In Progress, In Review, In QA and Done. It defines which states exist, which moves are allowed, who can make them and which checks or automations run on each transition.
What is the best Jira workflow for software development?
For most product teams the best Jira workflow is Backlog, Selected for Development, In Progress, In Review, In QA and Done. It shows coding, review and testing separately, keeps the total at six statuses and allows backward moves for rework. Smaller teams without QA can drop In QA; Kanban teams often add Ready to Release.
What is the difference between a Jira workflow and a board?
The workflow defines the statuses an issue can have and the allowed transitions between them. The board is a visual view that maps those statuses to columns and filters issues. One workflow can power several boards, and a board column can contain more than one status.
How many statuses should a Jira workflow have?
A typical software development team needs 5 to 7 statuses. Fewer usually hides code review or testing; more usually means statuses that describe people or side states, which are better handled with assignees, flags or labels.
Can Jira move issues automatically from GitHub or GitLab?
Yes. With the GitHub or GitLab integration connected, Jira Automation can react to events such as branch created, pull request created, pull request merged, build status and deployment successful, and transition the issue, set the assignee or add a comment. Include the issue key in branch names, commits and pull request titles so events are linked.
How often should you change a Jira workflow?
Review the workflow every quarter and change it only when data or team feedback shows a real problem, such as a persistent bottleneck or a status nobody uses. Frequent changes break historical reports and confuse teams, so batch changes and announce them before release.
Published 30 October 2026. Sources: Atlassian Support, working with workflows; Atlassian Support, smart commits; Atlassian, Jira Automation; Atlassian, State of Developer Experience Report 2024. Workflow patterns reflect YuSMP Group delivery practice and are recommendations, not Atlassian defaults.