bduf

Identify Big Design Up Front anti-patterns in software architecture and code.

Updated Mar 8, 2026
One-click install
npx skills add https://github.com/messeb/skills --skill bduf
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bduf
Source: https://github.com/messeb/skills/tree/main/plugins/general-developer/skills/bduf
Command: npx skills add https://github.com/messeb/skills --skill bduf

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps developers distinguish between necessary upfront design and the anti-pattern of "Big Design Up Front" (BDUF), preventing wasted effort on speculative requirements and over-engineering.

Core Features & Use Cases

  • Identify BDUF Anti-Patterns: Detects over-abstraction, excessive configuration, and generic frameworks for specific problems.
  • Guidance on Appropriate Design: Differentiates between BDUF and warranted upfront design for high-risk areas like security and APIs.
  • Use Case: Before starting a new feature, use this Skill to audit the proposed design, ensuring it balances necessary planning with iterative development and avoids premature complexity.

Quick Start

Use the bduf skill to audit the current design for signs of Big Design Up Front.

Frequently Asked Questions about bduf

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the Big Design Up Front anti-pattern in software architecture?

Big Design Up Front (BDUF) is an anti-pattern where extensive upfront design effort is spent on speculative requirements before coding begins. It leads to over-engineering, excessive abstraction, and generic frameworks built for problems that do not yet exist.

How do I distinguish between necessary upfront design and over-engineering?

Distinguish over-engineering from necessary design by evaluating risk. Warranted upfront design targets high-risk areas like security and APIs, while over-engineering focuses on speculative abstractions and excessive configuration that hinder iterative development.

What are the warning signs of over-engineering in code architecture?

Warning signs of over-engineering include over-abstraction, excessive configuration, and creating generic frameworks for specific problems. These code patterns indicate excessive design effort and a lack of iterative development.

How do I audit a proposed software feature for premature complexity?

Audit a proposed software feature for premature complexity by applying risk-driven design principles. Check for speculative abstractions and excessive configuration, ensuring the design balances necessary planning with iterative development.

When should I avoid iterative development and do more upfront design?

You should invest in more upfront design instead of purely iterative development when dealing with high-risk areas like security and APIs. In these cases, upfront design is warranted to prevent critical architectural flaws.

Does the YAGNI principle help prevent over-engineering in software development?

The YAGNI (You Aren't Gonna Need It) principle helps prevent over-engineering by discouraging speculative abstractions and generic frameworks. It aligns with risk-driven design to focus development on current requirements rather than speculative features.