technology

I Watched 47 TDDs Get Approved or Shot Down. Here's the Pattern.

Most TDD rejections aren't about your code. After watching 47 proposals succeed or fail, I found 5 patterns that have nothing to do with technical quality.

SC

Sarah Chen

Tech journalist and AI researcher exploring the intersection of technology and society. Former engineer at Google, now writing full-time about emerging technologies, digital ethics, and the future of work.

September 16, 20259 min read
I Watched 47 TDDs Get Approved or Shot Down. Here's the Pattern.

Want to know a frustrating truth? Some of the best technical work gets shot down, while simpler proposals sail through approval.

The difference often has almost nothing to do with code quality.

Learning how to write a technical design document that gets approved isn't really about demonstrating technical brilliance. It's about understanding what actually drives decisions in your organization. Your TDD might solve the problem elegantly. It might scale beautifully. But if it doesn't answer the right questions for the right people at the right time, it's going to collect dust in a shared drive somewhere.

I wish someone had told me this earlier: approval isn't about convincing people your solution is technically correct. It's about removing every reason someone might say "not yet" or "I'm not sure."

What follows is a reverse-engineering approach developed after watching dozens of TDDs succeed and fail. We'll dissect why documents get rejected, then build a framework that addresses each failure point before you ever hit submit.

The Rejection Autopsy: 5 Reasons TDDs Fail That Have Nothing to Do With Your Code

Technical design documents get rejected for predictable reasons. And these patterns repeat across teams at large tech companies, at startups, and in engineering orgs of all sizes.

1. Wrong problem definition

The most common rejection isn't "your solution is bad." It's "we're not even sure this is the problem we should be solving." You jump straight into architecture diagrams when stakeholders are still questioning whether the feature matters.

2. Missing risk acknowledgment

Engineers often write TDDs like sales pitches. Everything sounds great. No tradeoffs mentioned. Reviewers grow skeptical immediately. They start looking for what you're hiding instead of evaluating what you've presented.

3. No clear "why now"

Every proposal competes against other initiatives for engineering time. If you can't articulate why this deserves attention this quarter versus next year, you've given decision-makers an easy out.

4. Audience mismatch

Technical depth aimed at the wrong readers. Brilliant system designs get rejected because the VP who needed to approve budget couldn't follow the first three pages. And proposals also get rejected by senior engineers because they felt dumbed-down and hand-wavy. Sound familiar?

5. No obvious path forward

Approval requires action. If your TDD ends with ambiguity about next steps, timeline, or ownership, people hesitate. Hesitation becomes "let's revisit this next quarter." Next quarter becomes never.

None of these failures are about your technical chops. They're about communication strategy.

Pre-Writing Strategy: Stakeholder Mapping and the Questions You Must Answer First

Most engineers start writing their TDD way too early. Before you type a single word, you need clarity on who you're writing for and what they actually care about.

Create your stakeholder map

List every person who will read, review, or approve your document. For each one, answer:

  • What's their role in the approval chain?
  • What questions will they ask first?
  • What would make them say no?
  • What would make them enthusiastic?

Consider a major data pipeline redesign. A stakeholder map might look something like this:

  • Engineering manager: Cares about timeline, team capacity, risk to current commitments
  • Staff engineer: Wants architectural soundness, will scrutinize scalability claims
  • Product manager: Focused on user impact and whether this enables future roadmap items
  • Security lead: Needs to understand data flow and compliance implications

Each person reads the same document but looks for different things.

Pre-answer the "why not" questions

What objections might each stakeholder raise? Write these down. Seriously, make a list. Your TDD needs to address each one proactively, not reactively in a meeting.

Validate before writing

Schedule 15-minute conversations with your key approvers before you write anything. Ask them directly: "I'm planning to propose X. What would you need to see to feel confident about this approach?"

This step alone can save you weeks of wasted effort. Sometimes you'll learn the project is dead on arrival for political reasons no TDD could fix. Other times you'll discover concerns you never would have anticipated.

Getting buy-in for technical proposals starts before the proposal exists.

The Approval-Optimized TDD Structure (With Annotated Template)

Here's a template structure optimized for approval, not just technical completeness.

Executive Summary (Half a page max)

Write this last, but put it first. Include:

  • One sentence on what problem you're solving
  • One sentence on your proposed approach
  • Key metrics for success
  • Timeline and resource ask
  • Primary risks and mitigations

Many approvers will only read this section carefully. Make it count.

Problem Statement and Business Context

Don't assume readers share your sense of urgency. Connect the technical problem to business outcomes. Use specific numbers when possible.

Bad: "Our current system has performance issues."

Better: "Checkout flow times out for X% of users during peak load, representing approximately $Y in lost monthly revenue based on our average cart value." (Use your own metrics here, as the specific numbers matter less than showing you've quantified the impact.)

Goals and Non-Goals

Explicitly state what this project will and won't accomplish. Non-goals are just as important. They prevent scope creep arguments during review and show you've thought carefully about boundaries.

Proposed Solution

Your main technical section. Structure it as:

  • High-level approach (2-3 paragraphs readable by non-engineers)
  • Detailed design (as technical as needed for engineering reviewers)
  • Data model changes
  • API changes
  • Dependencies on other teams or systems

Alternatives Considered

Document at least two other approaches you evaluated and why you rejected them. Doing so demonstrates thoroughness and preempts "but have you considered..." questions.

Technical Specification Document Approval Considerations

Group these separately:

  • Security implications
  • Performance projections
  • Monitoring and observability plan
  • Rollback strategy
  • Compliance requirements

Timeline and Milestones

Break the work into phases with clear deliverables. Include dependencies and assumptions that could affect timing.

Open Questions

List anything you're still uncertain about. Counterintuitively, this builds trust. It shows you're not overselling and creates natural discussion points for review.

Writing for Two Audiences: Technical Depth Without Losing Non-Technical Buy-In

How do you maintain rigor while staying accessible to non-technical stakeholders? Consider using what might be called the "pyramid approach." Start every section with a plain-language summary that anyone in the company could understand. Then go deeper for technical readers.

Look, non-technical stakeholders aren't stupid. They're just optimizing for different things. A product director doesn't need to understand your database sharding strategy. What they need is confidence that you've thought through the technical implications and that the timeline is realistic.

Practical tips:

  • Lead with impact, follow with implementation
  • Use analogies sparingly but effectively
  • Put detailed technical specs in appendices or collapsible sections
  • Include a glossary if you use more than three domain-specific terms
  • Add diagrams, but keep them simple. One concept per diagram.

Apply the "so what" test

After every paragraph, ask yourself: "So what? Why does this matter to the reader?" If you can't answer that, cut or reframe the content.

Consider a complex feature redesign that needs to satisfy both infrastructure engineers worried about data consistency and product managers focused on user experience improvements. What works here? Explicit section labeling. "For technical reviewers:" and "For product context:" headers let each audience find what they need.

Best practices for engineering design reviews include explicitly acknowledging that different readers have different needs.

The Pre-Flight Checklist and Review Meeting Playbook

Before you submit your TDD, run through this checklist:

Content verification:

  • Problem statement is specific and quantified
  • Business impact is clearly articulated
  • Every stakeholder concern from your map is addressed
  • Alternatives show genuine evaluation, not strawmen
  • Risks are acknowledged with mitigation strategies
  • Timeline is realistic (not optimistic)
  • Open questions are documented
  • Non-goals prevent scope creep

Readability check:

  • Executive summary is standalone and compelling
  • No section requires reading previous sections to understand
  • Diagrams are clear without extensive explanation
  • Someone from a different team could follow the logic

Political preparation:

  • Key approvers have had preview conversations
  • You've incorporated feedback from informal reviews
  • No surprises for anyone in the approval chain

Your technical design document review meeting agenda matters just as much as the document itself.

Before the meeting:

  • Send the document with enough lead time for reviewers to read it thoroughly (check your team's norms, as this varies by organization)
  • Explicitly ask reviewers to add comments async
  • Identify your allies and brief them

During the meeting:

  • Don't read the document aloud
  • Start with: "I'm assuming everyone has read this. What questions should we focus on?"
  • Take notes on concerns, don't get defensive
  • When contentious points arise, propose follow-up actions rather than debate

After the meeting:

  • Send a summary of decisions and action items promptly (sooner is generally better to keep momentum and ensure accuracy while discussions are fresh)
  • Update the document to reflect discussion outcomes
  • Follow up individually with anyone who had unresolved concerns

Understanding the TDD vs RFC document differences can help here: TDDs typically require more formal approval processes, while RFCs often invite broader commentary. Adjust your meeting format accordingly.

Let me give you the step-by-step TDD writing tutorial distilled into an action plan:

Week 1: Pre-work

  1. Map your stakeholders and their concerns
  2. Have informal conversations with key approvers
  3. List every "why not" objection you might face

Week 2: Writing 4. Draft the structure using the approval-optimized template 5. Write the detailed technical sections first 6. Add business context and impact framing 7. Write the executive summary last

Week 3: Refinement 8. Run through the pre-flight checklist 9. Get informal feedback from a trusted colleague 10. Revise based on feedback 11. Schedule the review meeting with appropriate lead time

Your technical brilliance matters. But it's not enough. Learning how to write a TDD that stakeholders approve means treating the document as a communication tool, not a technical monument. Respect your reader's time and concerns more than your own ego.

Go build something great. And get it approved on the first try.


Want the template I use? [Link: downloadable TDD template] includes all sections discussed here with prompts and examples.

Related Articles

The War Story Tangent That Lost Me a Staff Engineer Offer
technology

The War Story Tangent That Lost Me a Staff Engineer Offer

I've watched senior engineers bomb system design interviews for 2 years. Your production experience might actually be the problem. Here's why.

OHOmar HassanDecember 9, 202510 min read
I Got Rejected for Staff Twice. Here's What Finally Worked.
technology

I Got Rejected for Staff Twice. Here's What Finally Worked.

Got rejected for staff engineer twice before figuring out what committees actually evaluate. Here's the 18-month timeline and packet strategy that worked.

ARAlex RiveraDecember 8, 20259 min read
Why I Switched from Notion to Obsidian (And What I Miss)
technology

Why I Switched from Notion to Obsidian (And What I Miss)

I tested 7 PKM tools for coding work. Obsidian won for its local Markdown files and Git support, but Notion still does one thing better.

LPLisa ParkDecember 7, 202510 min read

Comments (0)

Leave a comment

No comments yet. Be the first to share your thoughts!