DEV Community

Riazul Karim Ivan
Riazul Karim Ivan

Posted on

Defect Management in the Pre-AI Era: Lessons from 14+ Years of Enterprise Software Delivery

Before AI-assisted debugging, automated RCA summaries, and smart ticket triaging — defect management was a highly human, structured, and disciplined engineering practice.

In my 15 years of experience across enterprise systems, mobile super apps, e-commerce platforms, core banking, multi-wallet systems, closed enterprise environments, and open-source modifications — one truth has remained constant:

Quality is not accidental. It is governed.

Defect management is not just a QA responsibility. It is a cross-functional operational system involving:

  • Engineering
  • QA
  • Product
  • Project Management
  • Leadership

This article outlines how structured defect governance was executed — systematically and strategically — before AI augmentation.


1. Defect Classification: Severity vs. Priority

Clear, objective classification prevents emotional debates and ensures business-critical issues receive immediate attention.

Severity (technical impact)

Level Definition Score
Critical Application crash, data loss, security breach 4
Major Core feature broken or severely degraded 3
Minor UI/UX glitches, performance degradation 2
Trivial Typos, cosmetic issues 1

Priority (business urgency)

Level Meaning Score
P0 Fix immediately (blocker) 1
P1 Must fix in next release 2
P2 Can be deferred to backlog 3

Example

Issue Severity Priority
Crash in payment screen Critical P0
Misaligned icon Minor P2

Priority and Severity

Priority and Severity

Source: https://medium.com/hepsiburadatech/bug-severity-and-priority-matrix-ae14fb344559

Priority and Severity - 2

Severity vs Priority

Source: https://www.sketchbubble.com/en/presentation-severity-vs-priority.html

These matrices (or similar quadrant versions) were posted in every war room and Jira project.


2. The Defect Lifecycle

A standardized lifecycle creates transparency and accountability across teams.

Typical flow (customized per organization):

Defect Lifecycle Flow

Defect Life Cycle example 1

Defect Life Cycle example
Source: https://unstop.com/blog/bug-life-cycle

Defect Life Cycle example 2

Defect Life Cycle example
Source: https://unstop.com/blog/bug-life-cycle

Key rule: The moment a developer starts analysis, the status must move to In Progress. Comments and artifacts are mandatory at every transition.


3. Required Artifacts for Every Defect

  • Clear title & description
  • Step-by-step reproduction path
  • Environment (SIT / UAT / Pre-Prod / Prod)
  • Screenshots / screen recordings
  • Frequency (Always / Sometimes / Once)
  • Backend request/response (when applicable)
  • Data dump or test data
  • Related logs

Incomplete defects were sent back to the reporter with a comment—preventing wasted developer time.


4. Testing Phases: Sequential Flow

We followed a structured progression of environments and testing layers.

Testing Phases
Source: https://northflank.com/blog/what-are-dev-qa-preview-test-staging-and-production-environments

Pre-SIT (Development Internal Testing)

Backend + frontend engineers tested happy paths and selected error cases on mocked APIs. This was essentially a developer-led sanity check before official builds.

Smoke Testing (after every build/deployment)

Quick verification that the application launches and core navigation works.

SIT (System Integration Testing)

Dedicated QA team started as soon as partial features were released. Defects were logged and triaged immediately.

Sanity Testing

After every defect fix or small release—focused verification that the fix works and no obvious regressions were introduced.

UAT (User Acceptance Testing)

Business users or a separate QA team validated against real business scenarios. Often included regression suites.

Pre-Production / Staging (Dry Run)

Full production-like configuration with limited users. Final sanity + regression before go-live.

Production

Live monitoring. Critical issues → immediate hot-fix. Non-critical → negotiated deferral to next release.

Regression Testing

Executed after every fix across all phases to guard against side-effects.


5. Governance: Meetings That Actually Worked

  • Defect Triage / Assignment Meeting (post-SIT or post-UAT cycle)

    QA + PM + PO + Dev Leads reviewed all new defects, assigned owners, and estimated effort.

  • Daily Defect Progress Meeting

    15-minute stand-up tracking open critical/major defects. Missed targets escalated to leadership the same day.

  • Release Readiness Review

    Dashboard-focused meeting held before every production push.


6. Developer Perspective: How We Actually Fixed Defects

  1. Prioritize by Severity × Priority matrix.
  2. Move to In Progress immediately.
  3. Document root cause in comments.
  4. If root cause lies in another team (BE/FE/UX/Content), re-assign with clear handoff notes.
  5. Fix → local testing → developer sanity → raise PR with before/after evidence.
  6. Code review → merge → deploy to next environment → QA retest + regression.

Hardest scenarios

  • “Works on my machine” / cannot reproduce (missing config, production-only data, log access). Solution: paired debugging sessions with QA.
  • Side-effects from the fix. Mitigation: mandatory regression checklist and peer review of changed flows.

Hot-fixes

All hands on deck—cross-team war room, parallel reproduction, fix, and deployment within hours.


7. Tools and Leadership Visibility

Jira was the undisputed champion. We built dashboards showing:

  • Defect aging (days open by severity)
  • Burn-down of critical/major defects
  • Pie charts by status, severity, module
  • Escape rate (defects found in production)
  • Sprint health

Diagram Example
Source: https://idalko.com/blog/jira-dashboards

These dashboards were shared in leadership reviews—nothing builds urgency like a red “Defects > 30 days old” widget.


8. Key Metrics Leadership Should Track

  • Defect density per module
  • Average resolution time by severity
  • Defect escape rate (Prod / Pre-Prod)
  • Regression failure rate after fixes
  • Reopened defect ratio (signals poor testing or fixes)

Final Thoughts

Defect management is not about fixing bugs.

It is about:

  • Engineering maturity
  • Cross-functional accountability
  • Risk management
  • Release confidence
  • Leadership visibility

With a well-defined lifecycle, structured classification, sanity validation, and transparent dashboards — any multi-module enterprise system can maintain high reliability and predictable delivery.

And that discipline was built long before AI entered our workflows.

Top comments (0)