A one-page study guide for software-tooling support roles that administer Jira, Confluence, Bitbucket, Jenkins, Bamboo and Artifactory for R&D teams.
It's a developer-tools platform admin and support role, not hands-on infrastructure DevOps. You own the tools R&D engineers use every day: keep them running, configure them, handle tickets within SLAs, test upgrades and migrations, and improve how engineers work.
Roles like this often rate candidates higher if they can script (Python/JS) and understand how the applications are built. Frame automation work as "productivity and developer-experience improvements."
| Area | Know this |
|---|---|
| Jira admin (most important) | Projects, issue types, custom fields, screens; workflow / permission / notification / field-configuration schemes; statuses, transitions, conditions, validators, post functions; JQL, filters, dashboards; Scrum vs Kanban; Automation; Jira Service Management basics (queues, SLAs) |
| Confluence | Spaces, space vs page permissions, templates, macros, Jira linking |
| Bitbucket | Branch permissions, merge checks, PR workflow, webhooks, Gitflow vs trunk-based, SSH keys vs access tokens |
| Jenkins / Bamboo | Declarative Jenkinsfile, agents, shared libraries, credentials, plugin management, safe upgrades; Bamboo plans → stages → jobs → tasks, deployment projects |
| Artifactory | Local, remote and virtual repositories; Maven/npm/Docker repos; permissions; cleanup and retention |
| Platform lifecycle | Server licences ended Feb 2024 → Data Center or Cloud; Marketplace apps (ScriptRunner); SSO/LDAP group sync; upgrades on a test instance first |
| ITIL / ITSM | Incident vs service request vs problem vs change; SLAs; CAB; UAT; runbooks and knowledge articles |
| Scripting | Python against the Jira/Bitbucket REST API; basic Groovy for Jenkins and ScriptRunner |
Atlassian's team wiki. Jira tracks the work; Confluence holds the knowledge about the work.
Site → Spaces (one per team/product, own permissions) → Pages (a tree with parent/child pages and version history) + blog posts.
Creates spaces and permissions for new teams, manages LDAP/SSO-synced groups, maintains templates, archives stale spaces, manages Marketplace apps (e.g. draw.io), plans upgrades or Cloud migrations on staging first, answers how-to tickets.
Think of an apartment building. Company-managed is a building where management sets the rules for every flat: change the lock design once and every flat gets it. Team-managed is an independent house: the owner decides everything, quickly, but nothing is shared. (Newer Jira screens may call projects "spaces.")
| Company-managed | Team-managed | |
|---|---|---|
| Configured by | Jira admins | The team's project admin |
| Workflows, fields, screens | Shared schemes reused by many projects | Inside one project, not shared |
| Changing one thing | Affects every project using that scheme | Affects only that project |
| Permissions | Permission schemes with roles and groups | Simple access level + Admin / Member / Viewer |
| Best for | Large organizations needing standards | Small, independent teams |
Example: 50 R&D projects must share one Bug process. Company-managed: build one workflow scheme, attach it to all 50, edit once. Team-managed: 50 slightly different workflows, edited 50 times.
"Company-managed projects are configured centrally by admins using shared schemes, so one configuration gives consistency across many projects. Team-managed projects are configured by the team itself and aren't shared. For many R&D teams, company-managed is the right choice, and it's where most admin work happens."
Converting? No direct switch: create a project of the other type and move the issues, then check field and status mapping.
Four layers, like airport checkpoints. A user must pass every one.
| Permission | Allows |
|---|---|
| Browse Projects | See the project and its issues. Without it, the project is invisible. |
| Create / Edit Issues | Create new issues / edit fields |
| Transition Issues | Move issues through the workflow |
| Assign Issues / Assignable User | Assign to others / be assigned |
| Resolve / Close Issues | Set resolution, close |
| Delete Issues | Delete (usually admins only) |
| Administer Projects | Manage roles, components, versions |
| Manage Sprints | Start and complete sprints |
Grant to: project role (best), group, user (avoid), or special entries like Reporter, Current Assignee, Any logged-in user, Public (avoid).
Groups are site-wide and usually synced from AD/SSO. Roles are per project. A scheme says "Developers can edit issues"; each project fills its own Developers role. So one scheme serves hundreds of projects.
Related settings: notification scheme (who gets emailed on which events), issue security scheme, field configuration (required/hidden fields — often confused with permissions).
Newer Jira Cloud screens call issues "work items."
Sign up for free Jira Cloud and invite a second user (another email) to test permissions. If admin features are greyed out on Free, start the Standard trial.
Create a Scrum, company-managed project, e.g. "R&D Tools", key RDT.
Create an Epic, three Stories, two Bugs, a Sub-task. Create and start a sprint. Move cards across the board. Add Components (Firmware, Mobile App) and a Version (v1.0).
Create a select-list field "Affected Environment" (Dev, QA, Prod), add it to the project's screens, confirm it shows on a Bug.
Open → In Progress → In Review → QA Testing → Closed, plus Reopen.qa-team), a validator (Resolution required) and a post function (set resolution).qa-team.Copy the default permission scheme, grant to roles, attach to RDT. Remove Browse Projects from your second user's role, confirm the project disappears, check the Permission Helper, restore.
project = RDT AND issuetype = Bug AND status != Closed
assignee = currentUser() AND sprint in openSprints()
created >= -7d AND priority in (High, Highest)
project = RDT AND updated <= -30d AND statusCategory != Done
Save one as a filter; build a dashboard with Filter results and a pie chart.
Use each rule's audit log to debug rules that didn't fire.
import requests
from requests.auth import HTTPBasicAuth
SITE = "https://your-site.atlassian.net"
auth = HTTPBasicAuth("you@example.com", "YOUR_API_TOKEN")
r = requests.get(
f"{SITE}/rest/api/3/search/jql",
params={"jql": "project = RDT AND issuetype = Bug AND statusCategory != Done",
"fields": "summary,status,assignee"},
auth=auth,
)
r.raise_for_status()
for issue in r.json()["issues"]:
f = issue["fields"]
who = f["assignee"]["displayName"] if f["assignee"] else "Unassigned"
print(issue["key"], "|", f["status"]["name"], "|", who, "|", f["summary"])
Create the token at id.atlassian.com → Security → API tokens. Check Atlassian's REST docs if an endpoint has changed.
Atlassian's work-tracking tool. Teams plan, track and release work through projects, issues (work items), workflows and boards, usually with Scrum or Kanban, integrated with Confluence, Bitbucket and CI tools.
Team-managed: configured by the team, simple, nothing shared. Company-managed: controlled by admins through shared schemes, so one configuration serves many projects consistently.
A reusable configuration attached to projects: workflow, permission, notification, issue type, issue type screen, field configuration, issue security.
The statuses an issue moves through and the transitions between them. Transitions can carry conditions, validators and post functions.
A condition controls whether a user sees the transition. A validator checks input before it completes. A post function runs after it. Conditions hide, validators block, post functions act.
Copy the Bug workflow, add "User is in group qa-team" on Close, map Bug to it in the workflow scheme, publish, test with users inside and outside the group.
Licence → Browse Projects in the permission scheme → are they in that role/group → issue security if it's specific issues. Use the Permission Helper.
Trace screen → screen scheme (Create) → issue type screen scheme for this issue type → field context → field configuration (hidden?).
Groups are site-wide (often AD/SSO). Roles are per project. Grant permissions to roles, put groups in roles, so one scheme serves hundreds of projects.
Edit a draft/copy, add the status and transitions, publish; Jira asks you to map existing issues from removed statuses. Test on a test project first and tell users.
project = RDT AND issuetype = Bug AND priority in (High, Highest)
AND statusCategory != Done AND created >= -7d
statusCategory works across different workflows.
Highest-priority Bug created → assign to on-call lead and comment. Or: all sub-tasks done → parent to Done. Debug with the rule's audit log.
Epic: large body of work across sprints. Story: user-facing requirement. Task: technical work. Bug: defect. Sub-task: breakdown of any of these.
Scrum: time-boxed sprints, backlog, planning, velocity. Kanban: continuous flow with WIP limits, suits support and ops.
Components: sub-parts of a project, can have default assignees. Versions: releases. Labels: free-text tags, messy at scale.
Simple: bulk edit from search results. Complex or repeatable: Python against the REST API with an API token; test on a few issues and log changes.
Cloud: hosted by Atlassian, automatic upgrades. Data Center: self-hosted, more control, clustering, more admin work. Server licences ended Feb 2024.
Release notes and app compatibility → back up DB and home directory → upgrade staging and run UAT → announce a maintenance window → upgrade prod → validate, with rollback ready → document.
Scope it (everyone or one board/filter), heavy JQL in filters and dashboards, large boards, misbehaving automation or apps; on Data Center, logs, JVM memory, database.
Check whether an existing field covers it (too many fields slow Jira). If needed, create it with the narrowest context and add it only to relevant screens.
Practise 5, 7 and 8 out loud — they come up most.
An incident under pressure · automating a repetitive task · a difficult stakeholder · learning a new tool quickly · a deployment that went wrong.
Cloud or Data Center, any migration planned? How big is the user base and the tooling team? Mostly tickets or improvement projects?
A strong story covers three layers, then rollback and results:
kubectl rollout undo; on Azure App Service, deployment-slot swap.set image) and whether you used readiness probes.| Day | Focus |
|---|---|
| 1–2 | Jira deep dive in a free Cloud site: workflow, schemes, automation (lab steps 0–7) |
| 3 | Confluence and Bitbucket on free tiers |
| 4 | Jenkins in Docker, one Jenkinsfile; Bamboo concepts |
| 5 | Artifactory concepts; one Python script against the Jira REST API |
| 6 | ITIL basics; 4–5 STAR stories mapped to the role |
| 7 | Mock interview and revision |
Be honest about which tools you've administered and which you've practised. "I built this hands-on and can explain it in depth" beats a claim that breaks under follow-up questions.