Project Management & JIRA
Every pipeline you build, every cluster you run, and every incident you fix happens inside a team's way of deciding what to work on next — and that's Agile, almost everywhere, run through JIRA. This chapter rebuilds Day 22 and the JIRA walkthrough into a workshop: first the concept of Agile against the toolset a DevOps engineer actually touches, then the full backlog-to-release workflow hands-on in JIRA, then the interview questions the instructor flags, and finally the senior scenarios where a scope change, a blown sprint, or a hidden dependency is yours to navigate.
Almost every organisation you'll work at runs Agile, delivering software in small, time-boxed slices instead of one big release at the end. Around 90% of companies use it in some form, and there's no single official definition — it's a family of practices (Scrum being the most common) built around the same instinct: plan a short window of work (a sprint), commit to a slice of it, deliver, inspect, and repeat. JIRA is the tool that runs this cycle in practice — projects hold issues, issues live in a backlog, refinement turns vague ideas into sized, ready work, sprint planning pulls a slice of that backlog into a time-boxed sprint, and a handful of short ceremonies keep the team synchronised while it runs.
Two ideas carry this chapter: (1) Agile is a family of small-batch, iterative practices — not one fixed process — chosen over waterfall because it gets working software in front of people continuously instead of at the very end; and (2) the DevOps engineer's toolset around this process is broader than just JIRA — Confluence or SharePoint for documentation, ServiceNow for incident and change management, Read the Docs for published technical docs, and JIRA itself (or GitHub Projects/Azure Boards as alternatives) for the actual issue tracking and sprint cycle.
- ① Theory — Agile vs waterfall, and the toolset (Day 22)
- Agile vs waterfall — why small slices win
- The DevOps project-management toolset
- ② The workflow — backlog to release in JIRA
- Projects, issues, and the backlog
- Refinement and story points
- Sprint planning — capacity and goal
- The sprint itself — ceremonies
- Tracking — velocity, burndown, and releases
- ③ Interview Q&A — the questions the instructor flags
- ④ Scenario drills — project management under pressure (12)
Agile vs waterfall — why small slices win
The two names matter less than the actual difference in how work gets delivered — in slices, continuously, or as one big release at the end.
Waterfall plans an entire project up front — requirements, design, build, test, release — as one long sequential pipeline, and nothing ships until the whole thing is done. It's not that waterfall never works, but for most modern software, where requirements shift and feedback matters, discovering a problem only at the very end is expensive and slow. Agile is the alternative: deliver in small, time-boxed slices — sprints, typically one to four weeks — so working software reaches users continuously, feedback comes back early, and a wrong assumption costs one sprint's work to correct, not a whole project's.
There is no single official definition of "Agile" — it's a mindset with several concrete frameworks under it, and Scrum is by far the most common in industry, which is why this chapter (and JIRA itself) is built around Scrum's specific vocabulary: backlog, sprint, ceremonies, velocity. Roughly 90% of organisations run some form of Agile today, so fluently describing this cycle — not reciting a textbook definition — is what actually gets tested in interviews and used on the job.
The DevOps project-management toolset
JIRA is the centrepiece, but a DevOps engineer's actual toolset around process and documentation is wider than just one app.
| Tool | What it's actually for |
|---|---|
| JIRA | Issue tracking and the sprint cycle itself — backlog, refinement, sprints, boards, reporting. The centrepiece of this chapter. |
| Confluence / SharePoint | Team documentation — runbooks, architecture notes, meeting notes, linked directly from JIRA issues so context isn't lost. |
| ServiceNow | Enterprise IT service management — specifically incident management (an outage happened, restore service) and change management (a planned change needs approval before it goes ahead) — a different discipline from sprint-planned feature work. |
| Read the Docs | Publishing versioned technical documentation (often for open-source or public-facing docs) directly from a repository. |
| GitHub Projects / Azure Boards | Lighter-weight alternatives to JIRA, especially where the team already lives in GitHub or Azure DevOps — same underlying Agile concepts, different tool. |
The distinction worth holding onto for an interview is incident management vs. change management inside ServiceNow specifically, because it's a common trip-up: incident management is reactive — something broke, fix it, restore service, then do a postmortem — while change management is proactive — a planned change (a deployment, a config update) goes through an approval and scheduling process before it happens, precisely to reduce the odds of it becoming an incident.
Projects, issues, and the backlog
In JIRA, a project is the container for one team's or one product's work. Inside it, every unit of work is an issue — a bug, a story (a piece of user-facing functionality), a task, or an epic (a larger body of work grouping several stories together). All of these issues that haven't yet been scheduled into a sprint sit in the backlog — an ordered list, roughly by priority, of everything the team might work on. The backlog is deliberately allowed to be messy and rough at this stage; the whole point of the next step, refinement, is to clean specific items up before they're ready to be committed to.
Refinement and story points
Refinement (sometimes called grooming) is where a vague backlog item becomes something the team can actually commit to in a sprint.
In a refinement session, the team looks at upcoming backlog items, clarifies exactly what "done" means for each, and — critically — sizes them using story points. Story points are a relative measure of complexity and effort, deliberately not a measure of hours or days — a 5-point story isn't "five hours," it's "roughly this much harder than a story we already agreed was a 2." Teams commonly use the Fibonacci sequence (1, 2, 3, 5, 8, 13…) for sizing specifically because the growing gaps between numbers force a real decision — is this closer to a 5 or an 8? — rather than the false precision of arguing between a 6 and a 7.
Only refined, sized, well-understood issues are eligible to be pulled into a sprint — pulling in something still vague is exactly how a sprint ends up derailed partway through by a surprise.
Sprint planning — capacity and goal
At the start of a sprint, the team holds sprint planning: looking at the top of the refined backlog and deciding how many story points' worth of work to pull in, based on the team's capacity — how much they've historically been able to deliver in a sprint (their velocity, covered in W5), adjusted for known absences or holidays. The output isn't just a list of tickets; it's ideally also a sprint goal — a single sentence describing what this sprint is meant to achieve — which gives the ceremonies during the sprint something concrete to check progress against, rather than just "are we doing the tickets."
The sprint itself — ceremonies
A sprint runs on a small set of short, recurring meetings — ceremonies — each with one specific job, not a general status meeting.
The daily stand-up is the one everyone's heard of: roughly 15 minutes, each person answering three questions — what did I do yesterday, what will I do today, is anything blocking me — kept short specifically so it surfaces blockers fast without becoming a design discussion. A mid-sprint review is an informal checkpoint partway through, checking whether the sprint goal is still realistic before it's too late to adjust. At the very end, a sprint review (sometimes folded together with the retrospective, sometimes separate) demonstrates what was actually completed to stakeholders. The retrospective is the team-only meeting, deliberately separate from the demo, asking what went well, what didn't, and what to change next sprint — the mechanism by which the process itself keeps improving. A scrum master typically facilitates all of these — not as a manager assigning work, but as the person who protects the team's process and removes blockers that come up in stand-up.
Tracking — velocity, burndown, and releases
Velocity is the core tracking number: how many story points the team actually delivered versus how many they committed to at sprint planning, tracked sprint over sprint. It's what next sprint's capacity planning is based on — not a target to hit, but a measurement to plan around; a team that consistently delivers 30 points a sprint shouldn't commit to 50. JIRA renders this as a sprint report and a velocity chart, and progress within a sprint as a burn-up or burn-down chart — burn-down shows remaining work trending to zero by sprint end; burn-up shows completed work climbing toward the total scope, which also makes scope increasing mid-sprint visible, something burn-down alone can hide. For ad hoc questions ("show me every open bug tagged payments"), JQL (JIRA Query Language) builds custom filters and dashboards, and completed work is typically linked out to a Confluence page for release notes before being bundled into a formal release.
Q1What is Agile, and how is it different from waterfall?reveal ▸
Waterfall plans and builds an entire project as one long sequential pipeline, with nothing shipping until it's all done. Agile delivers in small, time-boxed slices — sprints — so working software reaches users continuously and feedback comes back early, meaning a wrong assumption costs one sprint, not the whole project. There's no single official definition of Agile; it's a family of iterative practices, and Scrum is the most common one in industry.
Q2What percentage of companies use Agile, roughly?reveal ▸
Around 90% of organisations run some form of Agile today, which is why fluently describing the cycle — backlog, refinement, sprint, ceremonies, tracking — is far more useful in an interview than reciting a textbook definition of the word "Agile" itself.
Q3What is a sprint, and how long does one typically last?reveal ▸
A sprint is a fixed, time-boxed period — typically one to four weeks, commonly two — during which the team commits to and delivers a specific slice of work pulled from the backlog. It's the core unit of Agile delivery: plan it, execute it, inspect the result, then start the next one.
Q4What are story points, and why use the Fibonacci sequence for them?reveal ▸
Story points measure relative complexity and effort, deliberately not hours or days — a 5-point story is "harder than a 2," not "five hours of work." Teams size with the Fibonacci sequence (1, 2, 3, 5, 8, 13…) because the growing gaps between the numbers force a genuine decision about which bucket a story belongs in, instead of the false precision of debating a 6 versus a 7 on a plain integer scale.
Q5What happens in a refinement (grooming) session?reveal ▸
The team reviews upcoming backlog items, clarifies exactly what "done" looks like for each, and sizes them with story points. Only refined, well-understood issues are eligible to be pulled into sprint planning — pulling in something still vague is one of the most common ways a sprint gets derailed by a surprise partway through.
Q6How does sprint planning decide how much work to commit to?reveal ▸
The team looks at the top of the refined backlog and pulls in work based on capacity — largely their historical velocity, adjusted for known absences or holidays. Ideally the output is also a sprint goal, a single sentence describing what the sprint is meant to achieve, which gives the ceremonies during the sprint something concrete to check progress against.
Q7What happens in a daily stand-up, and why is it kept so short?reveal ▸
Roughly 15 minutes, each person answers three questions: what they did yesterday, what they'll do today, and whether anything is blocking them. It's kept short deliberately, so it surfaces blockers fast without turning into a design discussion — any deeper conversation gets taken offline after stand-up, not during it.
Q8What is velocity, and what is it actually used for?reveal ▸
Velocity is how many story points a team actually delivers versus what they committed to at sprint planning, tracked sprint over sprint via JIRA's velocity chart and sprint reports. It's not a target to hit — it's the measurement next sprint's capacity planning is based on, so a team consistently delivering 30 points shouldn't commit to 50.
Q9What is the difference between incident management and change management in ServiceNow?reveal ▸
Incident management is reactive — something broke, the priority is restoring service, with a postmortem afterward. Change management is proactive — a planned change, like a deployment or a config update, goes through an approval and scheduling process before it happens, specifically to reduce the chance it becomes an incident. They're different disciplines inside the same tool, and confusing them is a common interview trip-up.
Q10What is the difference between a burn-down chart and a burn-up chart?reveal ▸
A burn-down chart shows remaining work trending toward zero as the sprint progresses. A burn-up chart shows completed work climbing toward the total scope line instead — which has the advantage of also showing scope increasing mid-sprint, since the total-scope line itself moves up, something a burn-down chart can hide by making added work look like slower progress.
Project Management
12 scenarios · 1–12The complete Project Management scenario set, worked through in depth. This is the thinking and the story behind each one, not answers to memorise. The goal is that a mid-sprint scope change or a hidden dependency is a puzzle you already know how to open, not a page you have to look up.
Before reacting to any mid-sprint surprise, ask these in order:
- Does this threaten the sprint goal, or just one ticket? A single slipping ticket and a sprint goal in danger call for very different responses.
- Is this new information, or was it knowable at planning time? That distinguishes a genuine surprise from a refinement gap that needs fixing going forward.
- Who needs to know, and how urgently? Not every slip needs an immediate stakeholder escalation; some just need to surface naturally at the next ceremony.
- What's the honest, smallest change that keeps the sprint commitment meaningful? Descoping one thing is usually better than quietly redefining "done" for everything.
Almost every scenario below is one of these four questions applied to a specific situation. Get the reflex automatic and the rest is detail.
---
📋 The full scenario inventory (distinct — no padding)
A. Scope & commitment
- Scope creep mid-sprint
- A story was badly underestimated
- The sprint goal is at risk halfway through
B. Dependencies & blockers
- A hidden cross-team dependency surfaces mid-sprint
- A blocker sits unresolved for days
C. Estimation & velocity
- Velocity swings wildly sprint to sprint
- Story points are being used as a performance metric
D. Ceremonies gone wrong
- Stand-up has turned into a design meeting
- Retrospective action items never actually happen
E. Process & tooling
- The backlog has become an unmanageable dumping ground
- JIRA data doesn't match reality
F. Stakeholders
- A stakeholder wants a mid-sprint priority change
- Reporting upward — what a leader actually wants to see
---
1Scope creep mid-sprintScenario▸
Three days into a two-week sprint, a stakeholder asks for "just one small addition" to a story that's already in progress.
What is actually happening (the mental model).
A sprint's whole value is that it's a protected, fixed commitment — the team agreed to a specific slice of work based on a specific capacity, and every "just one small addition" that gets waved through quietly erodes that protection, training stakeholders that the sprint boundary is negotiable whenever they ask nicely.
How to work through it.
- Size the addition honestly with story points, exactly as if it were a new backlog item — "small" is a feeling, not a measurement.
- If it fits inside remaining capacity without displacing anything, it can go in — but explicitly, not quietly, so the team's actual delivered scope stays honest.
- If it doesn't fit, something else has to come out — surface that trade-off to the stakeholder directly rather than letting the team silently absorb it through unpaid overtime or a compressed "done."
- Log the addition and its impact so it shows up in the sprint's own numbers, rather than becoming invisible extra work that makes next sprint's capacity planning wrong.
The root causes and trade-offs.
Saying yes without sizing leads to invisible scope growth that corrupts future capacity planning, while saying no rigidly with no negotiation can feel bureaucratic for a genuinely small, urgent ask. The trade-off is resolved by making the size and its consequence visible, and then letting the team or the product owner make an informed trade, rather than reacting with a reflexive yes or no.
The trap that less-experienced engineers fall into.
Agreeing to "just one small thing" without sizing it or naming what it displaces — a pattern that, repeated a few times a sprint, quietly turns every sprint commitment into fiction.
🎯 Interviewer follow-up questions you should expect.
- "How do you handle a stakeholder asking for something mid-sprint?" You size it honestly, then make the trade-off, what it displaces, explicit rather than silently absorbing it.
- "Isn't refusing small requests bad for stakeholder relationships?" It's not refusal — it's making the real cost visible so the decision is informed, not reflexive.
---
2A story was badly underestimatedScenario▸
A story sized at 3 points is, three days in, clearly going to take the effort of an 8 — and it's the only thing anyone's working on.
What is actually happening (the mental model).
Story points are an estimate made with the information available at refinement — a genuine underestimate discovered mid-sprint isn't a failure of the process, it's new information, and the right response is about protecting the rest of the sprint's commitment, not about assigning blame for a wrong guess.
How to work through it.
- Surface it immediately, ideally at the next stand-up or the mid-sprint check — the worst version of this is it staying quiet until the very end of the sprint.
- Reassess what's actually achievable in the sprint's remaining time and capacity, and be honest that something else in scope may now need to be descoped, not just "worked harder" to compensate.
- Re-estimate the story properly once it's better understood, and note the reason for the miss (hidden complexity? unclear requirements? unfamiliar code?) since that's useful signal for improving refinement next time.
- Resist the urge to silently absorb the overrun through unpaid extra hours — that hides the real signal and sets a bad precedent.
The root causes and trade-offs.
Sometimes it's genuinely hidden complexity that nobody could reasonably have known about at refinement time, and in that case nobody is at fault, you just re-plan. Other times it's a refinement session that rushed through sizing without enough real discussion, which is a process gap worth naming in the retrospective. Both are common, and the fix depends on telling them apart honestly.
The trap that less-experienced engineers fall into.
Staying quiet and just working longer hours to try to still hit the original estimate — which hides a genuine signal from the team, corrupts the sprint's data, and isn't sustainable if it happens repeatedly.
🎯 Interviewer follow-up questions you should expect.
- "A story is running way over its estimate — what do you do?" You surface it immediately, reassess the sprint's remaining scope honestly, and re-estimate once it's understood — you don't just silently work longer.
- "Whose fault is a bad estimate?" Usually nobody's — it's new information, and the useful question is whether it was genuinely unknowable or a rushed refinement.
---
3The sprint goal is at risk halfway throughScenario▸
At the mid-sprint check, it's clear the sprint goal — not just one ticket — is genuinely unlikely to be met.
What is actually happening (the mental model).
The mid-sprint review exists precisely to catch this while there's still time to act — a sprint goal in danger is a different, more serious category of problem than a single slipping ticket, because it means the thing stakeholders were told to expect this sprint may not land, and that needs an active decision, not a wait-and-see.
How to work through it.
- Identify precisely what's driving the risk — one blocked story, a cluster of underestimates, an unplanned absence — rather than a vague "we're behind."
- Decide deliberately: can the team re-focus remaining capacity onto just the goal-critical work, deprioritising nice-to-haves in the sprint even if they were already started?
- If the goal genuinely can't be met, communicate that early and clearly to stakeholders — a goal missed with two days' warning is a very different conversation than one that surfaces as a surprise at the sprint review.
- Bring the "why" into the retrospective afterward as real input, not just an excuse — was this a planning miss, a capacity miss, or truly unforeseeable?
The root causes and trade-offs.
This can come from overcommitted capacity at planning time, from a cluster of underestimates compounding on top of each other, or from a genuine unplanned event like an outage pulling people away. The trade-off in refocusing onto the goal is that some in-progress, non-critical work gets shelved, which is a real cost, but usually a smaller one than the cost of a silent miss.
The trap that less-experienced engineers fall into.
Treating the mid-sprint check as a status update rather than a decision point — noting "we're a bit behind" without actually deciding whether to refocus effort or communicate the risk, and then being surprised when the goal is missed at the very end.
🎯 Interviewer follow-up questions you should expect.
- "The sprint goal looks at risk halfway through — what do you do?" You identify exactly what's driving it, then deliberately decide whether to refocus capacity onto goal-critical work and communicate early if it still won't land.
- "Why does this deserve more urgency than one slipping story?" Because it's what stakeholders were told to expect this sprint — the mid-sprint check exists specifically to catch this while there's still time to act.
---
4A hidden cross-team dependency surfaces mid-sprintScenario▸
A story that looked self-contained at refinement turns out, once work starts, to need something from another team that wasn't planned for.
What is actually happening (the mental model).
A dependency you don't control is fundamentally different risk than work your own team controls — your own team's velocity and priorities don't apply to it, so treating it like an ordinary in-sprint task (just "work harder") ignores that its timeline is now genuinely outside your control.
How to work through it.
- Contact the other team immediately, not at the point you actually need their output — the earlier they know, the more likely they can accommodate it inside their own planning.
- Treat the ask as an explicit, tracked cross-team dependency (many JIRA setups support linking issues across projects for exactly this) rather than an informal side conversation that's easy to lose track of.
- Plan the affected story around the dependency's realistic timeline — if the other team can't turn it around this sprint, that's the same "does this threaten the goal" decision as any other risk, and may mean descoping or deprioritising this story now rather than leaving it half-blocked.
- Flag this pattern in retrospective if it keeps recurring — repeated hidden cross-team dependencies are usually a sign refinement needs a step that explicitly checks for them.
The root causes and trade-offs.
The root cause is usually that refinement never explicitly asked whether this work touches anything outside the team before it was sized, though sometimes the dependency really was impossible to foresee. The trade-off in raising it immediately versus waiting is almost entirely one-sided — earlier is always better for a dependency outside your control.
The trap that less-experienced engineers fall into.
Waiting until the point the dependency is actually blocking, then raising it — losing days of lead time the other team could have used, and turning a manageable dependency into a sprint-goal-level crisis.
🎯 Interviewer follow-up questions you should expect.
- "A story needs something from another team you didn't plan for — what do you do?" You contact them immediately, track it as an explicit cross-team dependency, and plan around their realistic timeline rather than your own velocity.
- "How do you prevent this happening repeatedly?" You add an explicit "does this touch another team" check to refinement.
---
5A blocker sits unresolved for daysScenario▸
Someone's mentioned the same blocker at stand-up for four days straight, and it's still not resolved.
What is actually happening (the mental model).
Stand-up is designed to surface blockers quickly, but surfacing is not the same as resolving — if a blocker is repeated day after day with no visible movement, the process that's supposed to remove blockers (usually the scrum master's actual job) has itself stalled, and repeating it at stand-up without escalating just becomes ambient noise everyone tunes out.
How to work through it.
- Recognise a blocker mentioned more than once or twice as needing escalation outside stand-up itself — stand-up surfaces it, it doesn't have to be where it gets solved.
- Identify specifically who actually has the power to unblock it (a decision-maker on another team, an access request stuck in a queue, an external vendor) and go directly to them rather than continuing to just mention it in the daily meeting.
- If it's the scrum master's role to chase this and it isn't happening, that's itself worth a direct, calm conversation — the ceremony only works if someone actually owns follow-through between meetings.
- Consider whether the blocked work should be swapped out for something else in the meantime, so at least forward progress continues elsewhere while the blocker is chased down.
The root causes and trade-offs.
Sometimes the blocker genuinely requires someone outside the team's control to act, and that needs direct escalation rather than repetition at stand-up. Other times it's the scrum master or team lead not actually following up between stand-ups, which is a process gap rather than a people problem to quietly blame. Swapping in other work keeps momentum going, but it does risk losing the blocked item's context if it drags on too long.
The trap that less-experienced engineers fall into.
Treating "I mentioned it at stand-up" as equivalent to "I'm actively working to resolve it" — repeating the same blocker daily without ever escalating it to the specific person who can actually unblock it.
🎯 Interviewer follow-up questions you should expect.
- "A blocker keeps coming up at stand-up with no progress — what do you do?" You escalate directly to whoever can actually unblock it, rather than continuing to just mention it daily.
- "Whose job is it to chase blockers?" Typically the scrum master's, and if that isn't happening, that gap itself needs a direct conversation.
---
6Velocity swings wildly sprint to sprintScenario▸
One sprint the team delivers 45 points, the next only 18, with no obvious external cause — making capacity planning nearly useless.
What is actually happening (the mental model).
Velocity is only a useful planning input if story-point sizing is relatively consistent across sprints and across the people doing the sizing — wild swings usually mean the underlying estimates themselves are inconsistent (different people sizing very differently, or sizing drifting over time), not that the team's actual working capacity is genuinely this volatile.
How to work through it.
- Look at what actually made up each sprint's points — is the variance concentrated in a few unusually large or small stories, or spread evenly?
- Check whether sizing is consistent across the people doing it — a common cause is different team members anchoring to very different ideas of what a "5" means, especially on a team that hasn't calibrated together.
- Look for external factors that genuinely do vary (holidays, on-call rotations pulling people away, a major incident) before assuming it's purely an estimation problem.
- If it is inconsistent sizing, run a calibration exercise — sizing a few historical stories together as a group — to re-align what the numbers mean before trusting velocity as a planning input again.
The root causes and trade-offs.
Sometimes this comes from inconsistent sizing across people or over time, which is fixable with a calibration exercise. Sometimes it's genuine variability in capacity from absences or incidents, which is a real signal rather than an estimation bug. And sometimes it's a small number of outlier stories dominating the total, which is worth addressing by capping or splitting very large stories. Each of these has a different, specific fix — the mistake is treating all velocity variance as the same problem.
The trap that less-experienced engineers fall into.
Reacting to volatile velocity by abandoning story points altogether ("estimation doesn't work here") instead of diagnosing whether the volatility is a sizing-consistency problem, which calibration actually fixes.
🎯 Interviewer follow-up questions you should expect.
- "Velocity swings a lot between sprints — what do you investigate?" You investigate whether sizing is consistent across people and time, genuine capacity variance from absences or incidents, or a few outlier stories dominating the total.
- "How do you fix inconsistent story-point sizing?" You run a calibration exercise, sizing historical stories together as a group to re-align on what the numbers mean.
---
7Story points are being used as a performance metricScenario▸
A manager starts comparing individual engineers' "points completed per sprint" in performance reviews.
What is actually happening (the mental model).
Story points are a team-level planning tool, calibrated loosely and specifically not meant to be comparable across individuals or even across teams — using them as an individual performance metric misunderstands what they measure and creates a strong, corrosive incentive to inflate estimates, which quietly destroys the very thing that made velocity useful for planning in the first place.
How to reason about it.
- Name the mechanism directly: once points affect an individual's perceived performance, everyone is incentivised to size generously, and velocity as a planning number stops meaning what it used to.
- Distinguish what story points are actually good for (team-level sprint planning, capacity forecasting) from what they are not (individual output measurement, cross-team comparison) and make that distinction explicit to whoever introduced the misuse.
- If individual contribution genuinely needs to be assessed, that's a separate, qualitative conversation — code quality, mentorship, ownership, collaboration — not a proxy derived from a number designed for a completely different purpose.
The root causes and trade-offs.
This usually comes from a well-meaning manager reaching for the only quantitative number visible in JIRA, without understanding what it was actually designed to measure. The real cost is a slow, hard-to-detect inflation of every future estimate, once people realise that the points affect them personally.
The trap that less-experienced engineers fall into.
Going along with it quietly (or worse, gaming their own estimates upward once they notice it's being tracked) instead of directly naming why story points are the wrong tool for this and risk corrupting the whole team's planning data.
🎯 Interviewer follow-up questions you should expect.
- "A manager wants to use story points for individual performance reviews — what's your concern?" It creates an incentive to inflate estimates, which corrupts velocity as a planning tool for everyone.
- "How do you push back on this constructively?" You name the mechanism directly, distinguish what points are for versus what they're not for, and offer that individual contribution needs a separate, qualitative conversation.
---
8Stand-up has turned into a design meetingScenario▸
Stand-up, meant to be 15 minutes, now regularly runs 40, because every blocker turns into a full group discussion about how to fix it.
What is actually happening (the mental model).
Stand-up has exactly one job — surface status and blockers fast — and it fails at that one job the moment it also tries to be the place blockers get solved, because solving something properly needs the specific people involved, not the whole team standing around while two people debug out loud.
How to reason about it.
- Reintroduce the discipline explicitly: stand-up surfaces a blocker in one sentence; anything needing real discussion gets a "let's take this offline" and a follow-up conversation with just the relevant people, immediately after.
- This isn't about suppressing problem-solving — it's about not making the whole team sit through a two-person debugging session that only needs two people.
- If this keeps recurring, it's worth naming explicitly in a retrospective as a process issue, since it usually means the habit has crept in gradually and needs a deliberate reset, not just one person trying to enforce it unilaterally in the moment.
The root causes and trade-offs.
This usually comes from a well-intentioned instinct to solve problems the moment they're raised, without noticing the cost that imposes on everyone else's time, combined with nobody in the room being willing to be the one who says "let's take this offline." The fix costs a little social awkwardness in the moment, in exchange for a real time saving for the rest of the team, every single day.
The trap that less-experienced engineers fall into.
Letting stand-up creep into a design meeting because redirecting it feels rude or disruptive in the moment — until it's normalised as a 40-minute meeting and nobody remembers it was ever supposed to be 15.
🎯 Interviewer follow-up questions you should expect.
- "Stand-up keeps running long because of deep discussions — what do you do?" You redirect anything needing real discussion to "let's take this offline" with just the relevant people, immediately after.
- "Isn't that suppressing useful problem-solving?" No — it's not solving it in front of everyone who doesn't need to be there; the discussion still happens, just with the right smaller group.
---
9Retrospective action items never actually happenScenario▸
Every retrospective produces a list of things to improve — and the same items reappear, unaddressed, sprint after sprint.
What is actually happening (the mental model).
A retrospective that only identifies problems without any mechanism to actually act on them is just a recurring complaint session — the value of the ceremony is entirely in the follow-through, and a list of good intentions with no owner and no tracking is indistinguishable, in outcome, from not holding the retro at all.
How to reason about it.
- Treat retro action items exactly like any other piece of committed work — give each one a named owner and, ideally, an actual ticket, rather than leaving them as bullet points in a meeting note nobody revisits.
- Limit the list to a small number of items per retro (one to three) rather than a long wish list — a long list with no prioritisation is a strong predictor that nothing on it happens.
- Open the next retrospective by explicitly reviewing whether last time's action items actually happened, before generating a new list — this single habit is usually what turns a retro from performative into effective.
The root causes and trade-offs.
This usually comes from having no named owner or tracking mechanism for action items at all, combined with generating too many items with no prioritisation, so that everything ends up getting equal — which in practice means no — attention. Limiting the list to a small number does cost addressing everything at once, but it massively increases the odds that what does get picked actually happens.
The trap that less-experienced engineers fall into.
Generating a fresh, well-meaning list every retro without ever revisiting whether the previous list happened — which normalises the retro as a venting session rather than an actual improvement mechanism.
🎯 Interviewer follow-up questions you should expect.
- "Retro action items never get done — how do you fix that?" You give each item a named owner and a real ticket, limit the list to a small number per retro, and open the next retro by reviewing whether they actually happened.
- "How many action items should come out of a retro?" A small number, one to three — a long unprioritised list is a predictor that nothing on it gets done.
---
10The backlog has become an unmanageable dumping groundScenario▸
The backlog has grown to hundreds of issues, many years old, and nobody's confident anything in it is still accurate or relevant.
What is actually happening (the mental model).
A backlog is supposed to be a living, prioritised list feeding refinement — once it becomes an unmanaged archive of every idea anyone ever had, it stops serving that purpose, and refinement sessions waste time re-discovering that old items are stale rather than actually preparing near-term work.
How to reason about it.
- Separate "old" from "irrelevant" — some old items may still matter, but the backlog's size alone makes it impossible to tell which, which is itself the core problem to fix.
- Run a deliberate backlog-grooming pass: close out items that are genuinely stale (a rule of thumb like "untouched for over a year and no longer aligned with current priorities" is a reasonable, honest filter), rather than letting everything accumulate indefinitely.
- Going forward, cap how far out the "actively maintained" portion of the backlog reasonably extends — a backlog that only needs to stay accurate for the next one or two quarters of realistic work is far easier to keep honest than one trying to represent everything forever.
- Make backlog health itself a periodic check (not just a one-time clean-up), since the same growth will otherwise just recur.
The root causes and trade-offs.
This usually comes from nobody owning backlog hygiene as an explicit responsibility, combined with a natural reluctance to close old tickets that feels like "losing" an idea. Closing stale items does risk occasionally closing something that still mattered, but that's mitigated by writing good closing notes and keeping the ability to reopen, which is a much smaller cost than an unusable backlog.
The trap that less-experienced engineers fall into.
Treating backlog grooming as a one-time clean-up project rather than an ongoing responsibility — leading to the exact same unmanageable pile reappearing a year or two later.
🎯 Interviewer follow-up questions you should expect.
- "The backlog has hundreds of stale issues — how do you fix it?" You run a deliberate grooming pass, closing genuinely stale items with a clear, honest rule, and treat backlog health as an ongoing responsibility, not a one-off clean-up.
- "Aren't you worried about losing good ideas by closing old tickets?" Good closing notes and the ability to reopen mitigate that risk far more cheaply than keeping an unusable backlog around just in case.
---
11JIRA data doesn't match realityScenario▸
The board says a story is "In Progress," but the engineer finished it two days ago and just forgot to move the card.
What is actually happening (the mental model).
Every downstream number — velocity, burndown, sprint reports — is only as honest as the raw ticket data feeding it; if updating JIRA is treated as an afterthought rather than part of actually finishing work, all of those derived numbers quietly become fiction, which nobody notices until a decision gets made based on a burndown chart that was never accurate.
How to work through it.
- Treat "update the ticket status" as literally part of the definition of done for a piece of work, not a separate administrative chore that happens whenever someone remembers.
- If stale ticket status is a recurring pattern rather than a one-off, that's worth naming directly — not to police individuals, but because it's actively corrupting the sprint and velocity data everyone else relies on for planning.
- Consider whether the tooling itself is part of the problem — if updating a ticket takes real friction (too many required fields, a clunky transition flow), that's worth fixing rather than just asking people to try harder.
The root causes and trade-offs.
Sometimes ticket updates are treated as separate from actually finishing the work. Sometimes the tooling itself has enough friction that it discourages quick updates. And sometimes it really is just an oversight. All three point to different fixes — a process norm, a tooling fix, or simply a reminder — so it's worth being specific about which one is actually happening before reacting.
The trap that less-experienced engineers fall into.
Treating a stale ticket as a minor, harmless annoyance, rather than recognising that every velocity number, burndown chart, and sprint report downstream is silently built on exactly this kind of small inaccuracy, multiplied across a whole team.
🎯 Interviewer follow-up questions you should expect.
- "JIRA status doesn't match what's actually done — why does this matter?" Because every derived metric — velocity, burndown, reports — is only as accurate as the raw ticket data feeding it.
- "How do you get a team to keep tickets accurate?" You make updating status part of the definition of done, and check whether the tooling itself is adding friction that discourages it.
---
12Reporting upward — what a leader actually wants to seeConcept▸
A director asks for "a status update on the project" — what do you actually put in front of them?
What is actually happening (the mental model).
Leadership reporting fails most often not from missing information but from the wrong level of detail — a director doesn't want the full ticket list or the daily stand-up notes, and a team lead reporting a raw velocity number with no context is answering a question nobody actually asked; good upward reporting translates ceremony-level detail into decision-relevant signal.
The shape of a good update.
- Status against the goal, not the tickets — "on track for the committed scope this quarter" or "at risk, here's why," not a list of forty JIRA IDs.
- Risks and blockers that need their help — specifically the things only someone at their level can unblock (budget, a cross-org dependency, a prioritisation call) — not every in-team blocker that's already being handled.
- Trend, not just a snapshot — velocity or delivery trending steady, improving, or declining tells a leader far more than one sprint's raw number in isolation.
- What decision, if any, you need from them — a good update often ends with a specific ask, not just information, since that's usually the actual reason the update is being requested.
The trap that less-experienced engineers fall into.
Reporting raw JIRA data — ticket counts, a velocity number with no trend or context, a list of every blocker regardless of who could act on it — mistaking "comprehensive" for "useful," when a leader's actual job is making decisions that need a much more distilled signal.
🎯 Interviewer follow-up questions you should expect.
- "A director asks for a status update — what do you tell them?" You give them status against the goal, any risks that need their level of help, the trend rather than just a snapshot, and what decision, if any, you need from them.
- "What's the difference between reporting to a director versus your own team?" Your team needs ticket-level detail to do the work; a director needs a distilled signal to make a decision — mixing the two levels up is the most common reporting mistake.
---
- Drill the reflex first — whether this threatens the goal or just one ticket, whether it's new information or a planning gap, who genuinely needs to know, and what the smallest honest adjustment would be — until it's automatic. Nearly every scenario above is this reflex applied to a specific situation.
- Run a real sprint, badly, on purpose. Let scope creep in during a practice sprint and watch the trade-off; deliberately underestimate a story and practice surfacing it early instead of absorbing the overrun quietly; run a retro and actually track whether the action items happen next time.
- One scenario, three passes. Reason it out, then say the spoken version without looking, then explain it to a teammate — especially scope creep, hidden dependencies, and reporting upward, which come up constantly.
- Keep a "process decision + why" log — the scope trade-off you made, the dependency you escalated early, the reporting update you distilled for a director. These become the concrete stories you tell in the behavioural round.
Next in the course order: Python for DevOps, at this same depth.