C B Mishra Feb 24, 2026 21 min read

Why Most Tech Projects Fail Before a Single Line of Code Is Written: BRD vs FRD

CB

C B Mishra

Strategic Technical Project Manager

By C B Mishra  •  Strategic Technical Project Manager  •  7+ Years  •  40+ Engineers Led  •  35% Faster Delivery

Here is a sentence that will save you months of pain: A project that goes into development without a locked BRD and a verified FRD is not a project — it is an expensive guess.

I have led and rescued dozens of enterprise technology projects. I have inherited projects mid-execution that were bleeding budget and delivering nothing. In nearly every case, the root cause wasn’t a bad developer, a weak tech stack, or a missed deadline. It was a requirement document that was either missing, half-done, or written by the wrong person for the wrong audience.

This blog is my full playbook — with real examples, industry-tested frameworks, and the exact templates I use on every project — to help you understand what a BRD and FRD actually are, how to write them right, and why the gap between the two is where most projects die.

📌   This isn’t theory from a textbook. Every framework, failure mode, and example in this blog comes directly from enterprise ERP rollouts, SaaS product builds, fintech integrations, and mobile platform launches I have personally led.

1. The Problem: Why 70% of Projects Fail in the Requirement Phase

The Standish Group’s CHAOS Report has consistently found that scope creep, unclear requirements, and misaligned stakeholder expectations are the top three causes of project failure — across every industry, every year, for the past two decades.

These are not technology problems. They are requirement engineering problems. And they almost always trace back to one of three root causes:

  • The team started building before requirements were fully understood
  • The BRD was written by someone who didn’t understand the business
  • The FRD was written by someone who didn’t understand the technology

I’ll add a fourth one from my own experience: The BRD and FRD were treated as formalities — produced to satisfy a checklist, signed without being read, and shelved the moment development began.

📖   Real example: I was brought into a fintech SaaS project at Month 4. The original scope was 6 months. The team had been building for four months with no signed BRD. The client kept adding requirements verbally in stand-up calls. The development team was tracking them in a Slack thread. By Month 4, the Slack thread had 1,400 messages. No one could tell you what the actual product was supposed to do. Budget was exhausted. The team was demoralized. The product was 30% built in four different directions. We spent Month 5 entirely on re-discovery — writing the BRD and FRD from scratch. Go-live happened in Month 9. It should have taken 6.

2. Defining the Terms: What BRD and FRD Actually Mean (and Don’t Mean)

Ask ten project managers to define a BRD and you’ll get ten different answers. Same for FRD. This ambiguity is itself a problem — if the people writing and using these documents don’t have a shared definition, the documents will never serve their purpose.

Here are my working definitions, refined across 7+ years of enterprise project delivery:

The Business Requirements Document (BRD)

The BRD answers: What does the business need, and why?

It is a business-language document. It describes business problems, objectives, constraints, and success criteria. It is written for — and signed off by — business stakeholders: the CEO, CFO, operations head, department managers. No developer should be writing the first draft of a BRD. No developer should be able to write it, because it requires deep business context they usually don’t have.

BRD ContainsBRD Does NOT Contain
Business problem or objectiveHow the system will solve the problem
Who the users are and what they needScreen designs, workflows, data models
Constraints: budget, timeline, complianceTechnical architecture decisions
Success metrics (KPIs)Module-level acceptance criteria
Assumptions and dependenciesIntegration specifications
In scope / out of scopePerformance and security benchmarks

The Functional Requirements Document (FRD)

The FRD answers: How will the system behave to meet those business needs?

The FRD is the bridge between business intent and technical execution. It describes system behavior in precise, testable terms — what happens when a user does X, what data is required for Y, what the system must do when Z condition is true. It is written by the BA or TPM, validated by developers for feasibility, and signed off by both business and technical leads.

FRD ContainsFRD Does NOT Contain
User stories with acceptance criteriaSystem architecture and technology choices
Functional flows and process diagramsCode structure or database schemas
Data requirements per moduleInfrastructure decisions
Business rules and validation logicDeployment or DevOps procedures
Integration requirements (API contracts)UI pixel-level design (that’s the wireframe)
Error states and exception handlingInternal technical implementation details

The Relationship Between BRD and FRD

Every line in the FRD should be traceable to a line in the BRD. If you’re writing an FRD requirement that has no parent in the BRD, you are either solving a problem that wasn’t scoped — or someone is secretly expanding scope without declaring it.

Think of it this way: the BRD is the ‘what’ and ‘why.’ The FRD is the ‘how’ and ‘when.’ Together, they form the full specification of a project. Separately, they are both incomplete.

💡   Industry-proven rule: If your BRD is done but your FRD isn’t, you know what the business wants but you don’t know how to build it. If your FRD is done but your BRD isn’t, you know how to build something — but you’re not sure what or why. Both documents are mandatory. Neither is optional.

3. The BRD Deep Dive: Writing One That Actually Works

Most BRDs I’ve seen in the wild are either 4-page summaries that answer nothing, or 60-page Word documents that no one reads. Neither works. A good BRD is comprehensive but scannable, business-language but precise, detailed but not prescriptive.

The 9 Sections of a Battle-Tested BRD

Section 1: Executive Summary

One page. Project name, business objective in one sentence, high-level scope, key stakeholders, timeline, and budget range. If a new executive joins the company tomorrow, this page should orient them completely in 5 minutes.

Section 2: Business Objectives and Problem Statement

This is the ‘why.’ Written as: Current State → Problem → Desired Future State. Be brutally specific. ‘We want to improve efficiency’ is not a problem statement. ‘Our warehouse team manually reconciles 400 inventory transactions per day across 3 spreadsheets, causing a 6-hour reporting lag and a 4% error rate in stock valuations’ — that is a problem statement.

📖   Real example: A solar manufacturing client gave me a BRD that said their objective was to ‘streamline operations.’ It took two workshop sessions to surface the real problem: their production planning team was using a WhatsApp group to coordinate daily manufacturing orders, which caused an average 2.3-day delay in production scheduling and ₹12L per quarter in material wastage from scheduling conflicts. That specific, quantified problem statement then drove every Odoo manufacturing module configuration decision.

Section 3: Stakeholder Register

List every person who has an interest in the project. Not just the project sponsor — the end users, the department managers, the IT team, the external vendors whose systems will integrate. For each stakeholder, document: their role, their level of authority, and their primary concern with the project.

📌   A stakeholder you haven’t documented is a stakeholder who will surprise you in UAT. I have never seen a project where an undocumented stakeholder made things easier. They always add requirements, raise objections, or block go-live.

Section 4: Scope Definition — In Scope and Out of Scope

This is the most important section of the BRD and the most commonly neglected. Out-of-scope items are as important as in-scope items. If it’s not listed as in scope, it’s out of scope — but if you don’t write the out-of-scope list explicitly, stakeholders will disagree with you about this at Month 4.

For every project I run, I maintain a ‘scope parking lot’ — a living document where requests that fall outside the BRD scope are logged, dated, and attributed to the person who raised them. This is your defense against scope creep and your pipeline for Phase 2.

Section 5: Business Process Flows (AS-IS and TO-BE)

AS-IS is a documented map of how things currently work — including all the manual workarounds, exception cases, and Excel-based hacks. TO-BE is how they’ll work in the new system.

The gap between AS-IS and TO-BE is your project. Everything in that gap needs to be built, configured, migrated, or trained. If you haven’t mapped AS-IS thoroughly, your TO-BE is based on assumptions, not reality.

🚨   The most dangerous phrase in a BRD workshop: ‘We’ll figure out that edge case later.’ Edge cases are where business rules live. Edge cases are what UAT testers find in Month 5. Document every exception you hear in workshops — even if the client says it only happens once a year.

Section 6: Functional Requirements (High Level)

At the BRD level, these are capability statements — not detailed specifications. ‘The system must allow finance managers to generate a consolidated P&L report by cost centre, filterable by date range and department.’ That’s a BRD-level requirement. The FRD will specify the exact data fields, filters, and output format.

Section 7: Non-Functional Requirements

These are the invisible requirements that kill projects when ignored. Response time. Concurrent user load. Uptime SLA. Data retention policy. Compliance requirements (GDPR, RBI regulations, GST rules). Audit trail requirements. Security access controls.

Non-Functional CategoryExample RequirementWhy It Matters
PerformancePage load < 2s for 200 concurrent usersDetermines hosting architecture
Availability99.5% uptime SLA, excluding 2AM–4AM maintenance windowDrives infrastructure choices
SecurityRole-based access: 5 permission levels, MFA for finance rolesAffects module config and custom dev
ComplianceAll financial transactions must have full audit trail for 7 yearsDrives data model and storage decisions
Data Migration3 years of historical orders, customers, and inventory to migrateAdds 3–6 weeks to project timeline
IntegrationsReal-time sync with Razorpay within 30 seconds of transactionDetermines API architecture pattern

Section 8: Assumptions, Constraints, and Dependencies

Assumptions are things you’re treating as true that haven’t been confirmed. Document them. Constraints are boundaries you cannot cross — budget, technology, regulatory. Dependencies are things outside your control that the project relies on — a third-party API going live, a client data team completing their migration, a vendor delivering integration credentials.

Every assumption that proves false becomes a risk. Every undocumented dependency becomes a blocker. Write them down.

Section 9: Success Criteria and Acceptance Metrics

How will you know the project succeeded? Not ‘the system is live.’ That’s delivery, not success. Success criteria are business outcomes: inventory accuracy improved from 87% to 98%; manual reconciliation effort reduced from 8 hours/week to 1 hour/week; order-to-delivery cycle time reduced from 4 days to 1.5 days.

Write these metrics into the BRD. Get them signed. They become the benchmark for go-live approval.

4. The FRD Deep Dive: Writing Requirements Developers Can Actually Build From

The FRD is where business intent gets translated into buildable, testable specifications. A badly written FRD creates ambiguity that developers resolve independently — meaning every developer makes their own interpretation, and the final product reflects five different assumptions about what was needed.

A well-written FRD leaves no room for interpretation. It is specific, measurable, and includes both the normal flow and every exception.

The Anatomy of a Well-Written FRD Requirement

Every requirement in an FRD should have five components:

  1. Unique ID — for traceability (e.g., FRD-INV-023)
  2. Parent BRD reference — which business objective this serves
  3. User story — written in the format: As a [role], I need to [action] so that [outcome]
  4. Acceptance criteria — exact conditions that must be true for the requirement to be ‘done’
  5. Exception / edge case handling — what happens when things go wrong
📖   Real example from a manufacturing ERP: Requirement FRD-MFG-041. BRD ref: OBJ-3 (reduce production scheduling lag). User story: As a production planner, I need to see real-time raw material availability per BOM component so that I can confirm or reject a manufacturing order within the same session. Acceptance criteria: System displays current on-hand quantity, reserved quantity, and reorder point for each BOM component on the MO confirmation screen. Quantity updates in <5 seconds of a warehouse transfer posting. Exception: If any BOM component has on-hand < required quantity, the system must display a red warning and prevent MO confirmation without a supervisor override with mandatory reason capture.

Notice what that requirement does: it defines the role, the need, the success condition, the performance expectation (< 5 seconds), and the exception state (insufficient stock). A developer reading this requirement cannot misinterpret it. A QA tester reading it knows exactly what to test.

The 7 Deadly Sins of FRD Writing

Sin 1: Vague verbs

‘The system should handle inventory’ tells a developer nothing. ‘The system must allow a warehouse manager to adjust on-hand stock quantities for any product via a manual adjustment entry, with a mandatory reason code and automatic journal entry creation in the linked accounting period’ — that is a requirement.

Sin 2: Missing actor

Every requirement must specify who is performing the action. ‘Reports should be exportable’ — exportable by whom? Finance managers only? All users? With what data access restrictions? The actor determines the access control design.

Sin 3: Untestable acceptance criteria

‘The system should be fast’ is not acceptance criteria. ‘The inventory dashboard must load within 3 seconds for a dataset of up to 10,000 SKUs on a standard broadband connection’ is testable. If a QA engineer can’t write a pass/fail test case from your acceptance criteria, rewrite the criteria.

Sin 4: Ignoring exception flows

Happy path requirements describe what happens when everything goes right. Real systems need exception paths: What happens when a payment gateway times out? What does the system do when a user tries to approve their own purchase order? What happens if a barcode scan returns no match? Exception flows are where bugs live and where user trust is won or lost.

Sin 5: Combining multiple requirements into one

‘The system must generate invoices, send them via email, and log the delivery status’ — that is three requirements wearing one ID. Split them. Each requirement must be independently testable and independently completable.

Sin 6: Requirements that are actually UI designs

‘The dashboard should show a blue bar chart with inventory levels on the left side of the screen’ — that is a design instruction, not a functional requirement. The FRD should say: ‘The dashboard must display current inventory levels by warehouse, with filtering by product category and date range.’ How it looks is the UX team’s job.

Sin 7: No traceability back to the BRD

If you can’t answer ‘which business objective does this requirement serve,’ the requirement either doesn’t belong in the project or your BRD is incomplete. Every FRD requirement must earn its place by linking to a stated business need.

🚨   The costliest FRD mistake I’ve seen: An FRD with no exception handling for payment failures in a neo-banking app. The happy path worked perfectly. When a Decentro API call timed out mid-transaction, the system created a debit entry without confirming fund transfer. Money left the source account. Nothing arrived in the destination. No error state. No rollback. No alert. Three days into production, we had 23 unreconciled transactions. The fix took two weeks and a complete redesign of the payment module’s state machine.

5. The BRD-to-FRD Translation Process: How to Bridge Business and Technology

The moment between a signed BRD and a written FRD is where most TPMs and BAs fail. They either jump too quickly to technical specifications without understanding the business nuance, or they spend too long in business analysis and never produce buildable requirements.

Here is my exact translation process:

Step 1: Decompose Each BRD Objective into Functional Modules

Take each business objective from the BRD and map it to one or more functional modules. A business objective like ‘eliminate manual stock reconciliation’ maps to Odoo’s inventory module — specifically: automated lot tracking, real-time stock moves, and integrated accounting entries. Each of those becomes an FRD module section.

Step 2: Run Module-Level Workshop Sessions

For each FRD module, I run a 90-minute workshop with the relevant department head and 1-2 power users. I come with a structured questionnaire and leave with: all user actions, all data fields, all business rules, all exception scenarios, and all integration touchpoints.

📌   My workshop rule: I never write in front of stakeholders during the session. I record with permission and transcribe after. When stakeholders see someone typing their words in real time, they stop talking freely and start ‘presenting’. Free-flowing conversation surfaces edge cases. Formal presentation does not.

Step 3: Write Draft Requirements and Run a ‘Stupid Question’ Review

I draft the FRD requirements and then deliberately ask the ‘stupid’ questions in a review: What if the user enters a negative quantity? What if the API returns a 500 error at 2 AM? What if two users try to approve the same PO simultaneously? What happens to in-progress orders if the system is migrated mid-month?

These questions feel obvious. They reveal enormous gaps. Every ‘that won’t happen’ I’ve heard has happened.

Step 4: Developer Feasibility Review

The FRD must be reviewed by the technical lead before it is finalized. This is not for the developer to change the requirements — it is to flag infeasibility, flag complexity that wasn’t scoped, and identify integration dependencies that need third-party confirmation.

On one project, the FRD specified real-time inventory sync between Odoo and a WooCommerce storefront. The developer’s feasibility review flagged that WooCommerce’s API had a rate limit of 40 requests/minute — meaning real-time sync was architecturally impossible for a catalog of 8,000 SKUs. We redesigned the requirement to near-real-time (5-minute batch sync) in the FRD. If we’d discovered this in Sprint 8 instead of FRD review, it would have required a full module rebuild.

Step 5: Dual Sign-Off

The FRD requires two signatures: the business owner (confirming it reflects what the business needs) and the technical lead (confirming it is feasible to build within the project constraints). Both signatures on the same document. Both dated.

After dual sign-off, any change to the FRD is a formal change request — with timeline impact, budget impact, and a new sign-off. This is not bureaucracy. This is survival.

✅   The sign-off protocol has saved me more times than I can count. When a client says at Month 4 ‘we always wanted it to work this way’ — I open the signed FRD on screen and show them the acceptance criteria they approved. Disputes resolve in 30 seconds. Without that document, the same dispute takes 3 weeks and damages client trust permanently.

6. Managing Scope Creep: The BRD and FRD as Your Shield

Scope creep is not always malicious. Sometimes it’s a stakeholder who genuinely forgot to mention a requirement. Sometimes it’s a business need that evolved since the BRD was written. Sometimes it’s a team member trying to add value by solving an adjacent problem. Regardless of the source, unmanaged scope creep kills projects.

The Change Request Process I Use on Every Project

  • New request identified — by anyone: client, developer, stakeholder
  • CR logged in Jira — with a unique ID, requester name, date, and description
  • Impact assessment — I assess timeline impact (hours/days), budget impact (₹/cost), and dependency impact (what else does this touch?)
  • Stakeholder decision — the business owner decides: approve (add to scope with impact), defer (add to Phase 2 parking lot), or reject
  • BRD/FRD updated — if approved, both documents are updated and re-signed
  • Sprint planning updated — new work is estimated, slotted, and communicated to the team

This process adds 30 minutes per change request. It saves 30 hours per avoided misunderstanding. The math is easy.

🚨   Warning: The most common scope creep vector I’ve seen is verbal requests in stand-up calls. A stakeholder says ‘can you also add X?’ and a developer says ‘sure, that’s easy.’ No CR logged. No impact assessed. No sign-off. X takes 3 days, not 3 hours. It pulls the developer off Sprint commitments. The sprint misses velocity. The PM scrambles to explain the delay. And X is never formally documented — so when UAT tests it and it doesn’t work perfectly, no one can find the acceptance criteria.

How I Handle the ‘But It’s Just a Small Change’ Conversation

When a stakeholder pushes back on the CR process for ‘small’ changes, I have one response: ‘There are no small changes. There are only changes we’ve assessed and changes we haven’t.’ A change that looks small on the surface — ‘just add a column to this report’ — can require database schema changes, a migration script, updates to three dependent modules, and a new test case. Or it could genuinely be 10 minutes. You only know after assessment.

7. Common Objections (and My Honest Answers)

‘We’re running Agile — BRDs are waterfall thinking’

This is the most common objection I hear, and it reflects a fundamental misunderstanding of what Agile actually replaces. Agile replaces the big-bang delivery model. It does not replace requirement clarity. You cannot sprint toward an unknown destination.

In my Agile projects, the BRD defines the product vision and the sprint boundaries. The FRD is written module-by-module, sprint-by-sprint. You don’t write the entire FRD upfront — you write the FRD for the next 2 sprints before those sprints begin. Agile and requirement documentation are not opposites. Undisciplined Agile without documented requirements is how you build 12 months of work in 18 months.

‘We don’t have time for documentation — we need to move fast’

Every project that skipped documentation in the name of speed that I’ve worked on has moved at half the speed of a well-documented project. Documentation is not the opposite of speed. It is the prerequisite for speed. A developer who understands exactly what they’re building, what edge cases to handle, and what the acceptance criteria are moves three times faster than one who is constantly asking questions, making assumptions, and redoing work.

‘The client keeps changing their mind — there’s no point documenting’

This is backwards. The client keeps changing their mind because there is no document holding requirements accountable. When requirements exist only in conversations and emails, they evolve with every conversation. When they are documented, dated, and signed, they require conscious, formal effort to change. That friction is healthy. It forces stakeholders to commit to decisions instead of keeping all options open indefinitely.

8. The Templates I Use: What Goes in Each Document

BRD One-Page Summary Template (for stakeholder alignment)

SectionContentsOwner
Project IdentityName, sponsor, PM, start date, target go-liveTPM
Problem StatementCurrent state, problem, quantified impactBusiness Owner
Objectives3–5 measurable business outcomesBusiness Owner
ScopeIn-scope modules / Out-of-scope explicitly listedTPM + Business Owner
Key StakeholdersName, role, authority level, primary concernTPM
TimelinePhase breakdown with milestones and bufferTPM
Budget RangeApproved budget envelopeSponsor
Success CriteriaKPIs that define project successBusiness Owner
AssumptionsWhat we’re treating as true; dependencies; open risksTPM

FRD Requirement Template (per line item)

FieldExamplePurpose
Requirement IDFRD-INV-023Traceability and change tracking
BRD ReferenceOBJ-3 / BRD-IN-005Ensure every req has a business parent
ModuleInventory / Lot TrackingAssign to right developer / sprint
User StoryAs a warehouse manager, I need to…Humanizes the requirement
Acceptance CriteriaSystem must display X when Y; test: pass/failFoundation for QA test cases
Exception HandlingIf Z condition: system must display alert…Covers edge cases explicitly
PriorityMust Have / Should Have / Nice to HaveEnables scope triage
Effort Estimate3 SP / 2 days (after dev review)Sprint planning input
StatusDraft / In Review / Approved / Built / TestedReal-time visibility

9. The Real Cost of Skipping This Work

Numbers I’ve collected across my project portfolio:

  • Rework cost: A requirement misunderstood at the BRD stage costs 1x to fix. The same misunderstanding caught at FRD costs 3x. Caught in development, it costs 10x. Caught in UAT, it costs 25x. Caught in production, it costs 100x. (Industry-standard multipliers, confirmed by my own post-mortems.)
  • Timeline impact: Projects with incomplete BRDs run an average 40% over schedule based on my experience. Projects with both documents locked before Sprint 1 run 15% ahead of schedule on average.
  • Team morale: Engineers who build against clear, stable requirements report significantly higher job satisfaction and deliver significantly fewer bugs. The fastest way to demoralize a development team is to make them rebuild the same feature three times because the requirements changed.
  • Client trust: I have never lost a client who received a clean BRD/FRD process. I have seen projects lose clients mid-execution because the client lost confidence that anyone knew what was being built.
💡   The most powerful thing a TPM can say to a client at project kickoff: ‘Before we write a single line of code, we will write the complete specification of what we’re building — and you will sign it. That document protects you as much as it protects us. It is our shared source of truth for the entire project.’

Final Thoughts: The Document Is Not the Destination

A BRD and FRD are not bureaucratic deliverables. They are the engineering blueprints of a project. An architect doesn’t start construction without blueprints. A manufacturer doesn’t start production without a Bill of Materials. A technology team shouldn’t start building without a documented, signed specification.

But the document is also not the destination. The destination is a working system that solves a real business problem, adopted by real users, delivering measurable outcomes. The BRD and FRD are the tools that make that destination reachable — reliably, on time, and within budget.

The projects that fail before a line of code is written are the ones that skipped this foundation. The ones that succeed are the ones that did the unglamorous, essential work of writing it down, getting it right, and holding everyone — including themselves — accountable to it.

C B Mishra  |  Strategic Technical Project Manager  | 

Available for enterprise consulting & contract engagements  •  Book a free call

Tagged in:

C B Mishra PROJECT MANAGEMENT REQUIREMENT ENGINEERING
CB

C B Mishra

Strategic Technical Project Manager

7+ years directing enterprise-scale digital transformations, ERP implementations, and high-performing engineering teams globally.