Common ServiceNow Agile Development Mistakes and How to Avoid Them
Agile development mistakes on ServiceNow are habits that look like progress for the first few sprints. The page covers vague or oversized user stories, thin testing, shifting priorities, technical debt and weak change control. Each mistake comes with its early signs and a fix, including a table that lists them together.
User Stories That Are Too Vague or Too Large
Agile development relies on clear, granular user stories that developers can estimate and complete in a sprint. When user stories are vague (“build the reporting feature”) or too large (“implement the entire workflow module”), teams cannot estimate accurately, developers do not know when they are done, and quality suffers because scope is ambiguous. The mistake often occurs when non-technical people write stories without involving the development team.
Establish a user story format that includes acceptance criteria specific enough that a developer and tester can verify completion. For example, instead of “build the reporting feature,” write: “As an operations analyst, I want to export incident data by priority and creation date so that I can analyze high-priority incident trends. Acceptance criteria: export includes at least priority, creation date, assignment, and resolution time; export format is CSV; filtered data accurately represents the database query result.” Have developers review stories before they are added to the sprint backlog and split stories that are too large (cannot complete in one sprint) into smaller stories. This ensures that every story is clear and completable.
Inadequate Testing and Quality Gates
When development teams are under pressure to deliver features quickly, testing is often shortened or deferred. Unit testing may be skipped in favor of manual testing; automated tests may not be written; regression testing may be missed because the sprint deadline is approaching. This creates a pattern where features work when first deployed but fail in production days or weeks later when edge cases are discovered or when the feature interacts with existing code.
Define a Definition of Done for your team that requires automated unit tests, code review, and manual testing before a story is closed. Aim for strong test coverage for new code; if a developer cannot achieve that, it usually means the code needs refactoring to make it testable. Maintain an automated regression test suite and run it before every release so that you catch unintended side effects. Do not skip or defer testing to meet sprint deadlines; instead, reduce scope by pulling lower-priority stories from the sprint. Quality today prevents emergency production fixes tomorrow.
Unclear Priorities and Scope Creep
Sprint priorities should come from a prioritized product backlog and should not change mid-sprint. When stakeholders request new features mid-sprint or repriorize existing work, the team loses focus and productivity suffers. The team may complete fewer stories than planned or reduce quality to fit new priorities into the same sprint duration.
Establish a sprint commitment process: the product owner prioritizes the backlog, the team pulls stories into the sprint based on their capacity, and priorities do not change during the sprint. If a critical issue emerges mid-sprint, handle it as an incident outside the sprint rather than pulling team members away from sprint commitments. Document any mid-sprint priority changes as an exception and analyze them in your retrospective to understand whether your prioritization is stable enough or whether your emergency process is too loose. Track scope creep by comparing planned stories to completed stories; if you consistently complete less than planned of planned work, either increase team size, reduce story complexity, or stop accepting mid-sprint changes.
Technical Debt Accumulation
Technical debt occurs when code takes shortcuts to meet deadlines: features are hardcoded, error handling is minimal, code duplication is tolerated, or refactoring is skipped. In the short term, this accelerates feature delivery. Over time, the codebase becomes unmaintainable, and simple changes take weeks because the code is tangled and risky to modify.
Allocate a portion of team capacity each sprint to reducing technical debt: refactoring risky code, adding automated tests, improving error handling, and documenting complex logic. Prioritize debt that poses the highest risk or that is blocking feature development. If technical debt is not addressed, you will hit a productivity cliff where the team spends most of their time maintaining fragile code and little time building new features. Track technical debt items in your product backlog and address them consistently; technical debt is never finished, but it should be actively managed.
Weak Change Control and Deployment Risk
In some agile teams, the emphasis on speed leads to minimal change control or risk review before deployment. Features are built and deployed to production quickly, but there is no clear review process to ensure that the deployment is safe or that dependencies are understood. If something breaks in production, the team has to scramble to fix it.
Even in a fast agile environment, maintain change control: a deployment checklist that verifies the code has been tested, reviewed, and approved; a pre-deployment verification step that checks dependencies and rollback plans; and a post-deployment monitoring step that watches for errors or performance issues. Some organizations use a lightweight change process for low-risk changes (bug fixes, configuration updates) and a more rigorous process for high-risk changes (data model changes, architectural changes). The goal is to balance speed and safety; speed without control will eventually result in failures that are more costly than the time saved by skipping review.
Mistakes that look like progress for the first few sprints
Many failed agile rollouts do not fail loudly. The board fills up, the velocity chart has a shape, and the steering group receives a tidy report every month. The trouble shows up later, when a release slips for reasons nobody can explain or when a team quietly stops using the tool for anything except status. The mistakes below share that quality. They produce activity that looks like delivery, and they hide the decisions that were never made. Each one comes with an early warning sign that can be checked in the first weeks, and a correction that is often cheaper than the team expects.
A table of mistakes, their early signs and their fixes
| Mistake | Early warning sign | Correction |
|---|---|---|
| Measuring people by story points | Estimates grow during planning and nobody will commit to a number | Use the figures to plan capacity only, and keep individual performance out of the sprint record |
| Letting the platform team own the backlog by default | Changes arrive as technical tickets with no business owner named | Assign a product owner from the business side, and route technical requests through that person |
| Splitting one product across too many backlogs | Two teams report the same feature as finished while a third still lists it as open | Consolidate backlogs so that each product has one source of order, even when several teams deliver it |
| Treating the sprint review as a status meeting | Stakeholders ask for updates by email in the week after the review | Use the review to decide what happens next, and move status reporting to the dashboard |
| Customizing the board before the workflow is stable | Columns are renamed in most sprints and the team cannot remember why | Freeze the workflow for at least one full cycle and log every change with its reason |
| Letting old items accumulate | The backlog contains items nobody can explain or defend | Run a backlog review each cycle and close items that have no owner or no recent decision |
Measuring people by story points is the quickest way to corrupt the data
Story points are a planning tool. Once a manager uses them to compare individuals, estimates inflate, teams start splitting work to look productive, and the figures stop describing what the team can deliver. The fix is not to abandon points. It is to keep the figures inside the team’s planning conversation and use them for capacity, not appraisal. Some organizations find it helpful to write this rule into the team charter, so that a new manager does not discover it by accident.
A sequence for recovering a rollout that has drifted
When a team realises several of these mistakes are present at once, the temptation is to rebuild everything. That often makes things worse. A more controlled sequence works better.
- List the decisions the team has made in the past two cycles and mark which ones have a recorded owner and reason. The unmarked ones are where the drift started.
- Restore one owner for the backlog, even if that person has to be appointed for the recovery period.
- Consolidate duplicate backlogs for the product in question before changing anything else, because every later fix depends on one list of work.
- Freeze the workflow and the board for a full cycle so the team can see whether the process works before it changes again.
- Run a short retrospective focused on the decisions, not on individual performance, and write down the two changes the team will test next.
When the mistake is really a sign of the wrong scope
Sometimes a team keeps making the same mistake because the product is too big for one team to own. A backlog that grows faster than the team can read it, and a review that never reaches a decision, may be signs that the product needs to be divided. That is a structural decision, and it should be made by the sponsor with the product owners, not by the scrum master alone. Splitting a product is costly, so it should be done only when the evidence from several cycles points clearly that way.
Signs the common mistakes have been avoided
- Every backlog item has an owner who can say why it is there.
- Story points appear in planning conversations and nowhere in performance discussions.
- Stakeholders get status from the dashboard and bring decisions to the review.
- Workflow changes are rare, logged and explained.
How do we know if our backlog has become a parking lot?
Sort the backlog by the date of the last decision recorded against each item. Anything without a decision for several cycles is a candidate for closure or for a fresh owner. Do the sort in a meeting with the product owner present, so that items are closed on a decision rather than quietly deleted.
Can a platform team still own the technical side?
Yes. The platform team can own configuration standards, integrations and the technical backlog for the platform itself. What it should not do is decide business priority for the products that run on it. A clear split between platform work and product work prevents much of the confusion described above.
What if the sprint review keeps turning into a status meeting?
Move the status content to the dashboard before the review and ask attendees to read it in advance. Then reserve the review for two questions: what was accepted, and what should change next. If stakeholders still arrive wanting an update, they are probably not receiving the information another way, and that gap needs its own fix.
Should we stop using points if they cause trouble?
Not necessarily. Points cause trouble when they are used as a target or a performance measure. A team that uses points only to plan its capacity often gets value from them. If the trouble persists after the rule is clear, try a simpler sizing method before abandoning the practice.
Those three facts often show which mistake is driving the others.
Practical controls for the change side of this are in the change validation evidence guide, and the governance questions behind the backlog are covered in the agile governance model guide.
Frequently asked questions
How should we handle bugs discovered after a sprint is complete?
Distinguish between bugs (code does not work as designed) and change requests (user wants different functionality). Bugs should be prioritized and addressed in the next sprint. If a bug is critical and affects production, pull a developer into an emergency fix outside the sprint. Change requests should be evaluated in grooming and prioritized like any other work.
What should we do if the team is consistently not meeting sprint commitments?
Analyze why: are user stories too large? Is the team being interrupted mid-sprint? Are estimates inaccurate? Adjust one factor at a time. If stories are too large, split them smaller. If interruptions are the problem, protect sprint time. If estimates are inaccurate, spend time in grooming to clarify stories before committing. Do not just accept lower velocity; identify and fix the root cause.
How do we balance feature delivery with fixing technical debt?
Allocate a meaningful portion of capacity to debt reduction every sprint. This ensures debt does not accumulate indefinitely while still delivering features. Track debt velocity alongside feature velocity so leadership understands the trade-off.
Related guides
Related Oblytech services
Where this topic turns into delivery work, these are the Oblytech services that cover it.
Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.
Contact us